我有一个GridView看起来像这样:

<asp:GridView
    ID="GridView1"
    AllowPaging="true"
    OnRowCommand="RowCommand"
    OnPageIndexChanging="gridView_PageIndexChanging"
    Runat="server">
    <Columns>
        ...
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="Button1" ButtonType="Button" CommandName="ItemExport" CommandArgument='<%# Eval("EXPORT") %>'
                    Text="Export" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        ...
    </Columns>
 </asp:GridView>

这是RowCommand:
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "ItemExport")
    {
        // etc.
    }
}

单击该按钮根本不会触发RowCommand事件。但是,当我单击GridView的寻呼机中的页面索引时,会触发RowCommand

最佳答案

您必须而不是将您的网格绑定(bind)到Page_Load中的回发,仅当发生某些更改导致该网格重新加载数据(例如,排序,分页)时,并且仅在适当的事件处理程序中。

另一个可能的原因:您是否在某处禁用了ViewState?

08-03 23:55