我有一个看起来像这样的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就会触发。
发布于 2011-12-14 03:55:39
在Page_Load中,您不能在回发时绑定网格,只有当发生了导致网格重新加载数据的更改时(F.E.排序、分页),并且仅在适当的事件处理程序中。
另一个可能的原因是:你在什么地方禁用了ViewState吗?
发布于 2015-04-30 20:38:25
在按钮标签中使用CausesValidation="false"。它可以解决这个问题。
发布于 2012-04-17 23:47:54
我的一个同事刚刚遇到了同样的问题;他的问题是由于没有在asp:GridView元素中设置onrowcommand=属性造成的。这应该设置为将要处理事件的处理程序的名称。
..。以防有人遇到同样的问题!
https://stackoverflow.com/questions/8494730
复制相似问题