处理命令事件

GridViews 允许从 GridView 行发送命令。这对于将特定于行的信息作为命令参数传递到事件处理程序非常有用。

订阅命令事件:

<asp:GridView ID="GridView1" ... OnRowCommand="GridView1_RowCommand">

按钮是引发命令的最常用方法。它们还支持指定命令参数的方法。在此示例中,参数是行所代表的项目的 ID

<TemplateField>
    <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server"
                        CommandName="SampleCmd"
                        CommandArgument='<%# Eval("ID") %>'>
        </asp:LinkButton>
    </ItemTemplate>
</TemplateField>

或者,可以使用提供最常用命令控件的 CommandField 列模板。

在代码后面处理事件:

protected void GridView1_RowCommand(object source, GridViewCommandEventArgs e)
{
    if (e.CommandName == "SampleCmd")
    {
        var id = e.CommandArgument;
    }
}

请注意,此示例中使用的 CommandName 是任意的,并且是开发人员的选择。但是,GridView 本身可以识别一组预定义的名称。触发这些命令时会引发相应的事件。

命令名称 触发的活动
取消 RowCancelingEdit
删除 RowDeleting,RowDeleted
编辑 RowEditing
PageIndexChanging,PageIndexChanged
选择 SelectedIndexChanging,SelectedIndexChanged
分类 Sorting, Sorted
更新 RowUpdating,RowUpdated