我在GridView中放了一个Button,想要执行Button引发的RowCommand可是在点击Button时出现如下错误提示.  
回发或回调参数无效。在配置中使用  <pages  enableEventValidation="true"/>  或在页面中使用  <%@  Page  EnableEventValidation="true"  %>  启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用  ClientScriptManager.RegisterForEventValidation  方法来注册回发或回调数据以进行验证。  
 
以下是出错的Button:  
<asp:TemplateField  HeaderText="操作"> 
 <ItemStyle  HorizontalAlign="Center"  />  
  <HeaderStyle  HorizontalAlign="Center"  Width="30%"  />  
   <ItemTemplate>                                                      
 <asp:Button  ID="ImageButton1"  runat="server"    CommandArgument='<%#Eval("Url")  %>'    Visible='<%#  !(bool)DataBinder.Eval(Container.DataItem,"Flag")%>' CommandName="download"   />                                                
     </ItemTemplate>  
</asp:TemplateField> 以下是定义的RowCommand:
protected void DiskView_RowCommand(object sender,GridViewCommandEventArgs e)
{
    if (e.CommandName == "download")
        {
           /// 执得的操作
         }
}

解决方案 »

  1.   

    try Visible change to Enable
      

  2.   

    你的GridView是不是动态加载 的啊,如果是动态加载 的就可能会有这样的情况
      

  3.   

    页面的Page指令中加入enableEventValidation="false" 和 EnableEventValidation="false"就可以了
      

  4.   

    jiangmin168168() 我的GridView是动态加载的,请问有什么方法能解决下吗?如果设置enableEventValidation="false"这样的话是不报错了但数据也无法从数据库得到了呀.
      

  5.   

    将gridview绑定数据的代码写到if(!page.ispostback)里。不要每次page_load都绑定
      

  6.   

    netone04
    是对 的。