響應(yīng) GridView 控件中的按鈕事件
-
將按鈕的 CommandName 屬性設(shè)置為標(biāo)識其功能的字符串,如“打印”或“復(fù)制”。
-
如果使用的是 TemplateField 對象并且必須在事件處理程序方法中訪問行索引,則將按鈕的 CommandArgument 屬性設(shè)置為標(biāo)識當(dāng)前行的表達式。
下面的示例演示如何將 TemplateField 列中某個按鈕的 CommandArgument 屬性設(shè)置為當(dāng)前行索引。 在該示例中,該列包含一個顯示購物車的 Button 控件。
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
-
為 GridView 控件的 RowCommand 事件創(chuàng)建一個方法。 在該方法中,執(zhí)行下列操作:
-
檢查事件參數(shù)對象的 CommandName 屬性來查看傳入什么字符串。
-
如果需要,使用 CommandArgument 屬性檢索包含該按鈕的行的索引。
-
為用戶單擊的按鈕執(zhí)行相應(yīng)的邏輯。
下面的示例演示響應(yīng) GridView 控件中的按鈕單擊的方法。 在該示例中,TemplateField 列中的按鈕發(fā)送命令“AddToCart”。 RowCommand 事件處理程序確定被單擊的按鈕。 如果被單擊的是購物車按鈕,則代碼執(zhí)行相應(yīng)的邏輯。
Protected Sub GridView1_RowCommand(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs)
If (e.CommandName = "AddToCart") Then
' Retrieve the row index stored in the CommandArgument property.
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
' Retrieve the row that contains the button
' from the Rows collection.
Dim row As GridViewRow = GridView1.Rows(index)
' Add code here to add the item to the shopping cart.
End If
End Sub
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
// Retrieve the row index stored in the
// CommandArgument property.
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button
// from the Rows collection.
GridViewRow row = GridView1.Rows[index];
// Add code here to add the item to the shopping cart.
}
}
|