【问题标题】:Grid view row command showing error网格视图行命令显示错误
【发布时间】:2013-12-26 19:53:06
【问题描述】:

我收到此错误:

回发或回调参数无效。启用事件验证 在配置中使用&lt;pages enableEventValidation="true"/&gt; 或在页面中使用<%@ Page EnableEventValidation="true" %>。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法为了 注册回发或回调数据以进行验证。

这是我的代码:

protected void GridViewCommandEventHandler(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "view")
    {
        int row_id = Convert.ToInt32(e.CommandArgument);
        var result = (from test in je.jobposting where test.id==row_id select                test).FirstOrDefault();
        Session["id"] = result;
    }
    else
    {
        int row_id = Convert.ToInt32(e.CommandArgument);
        var result = (from test in je.jobposting where test.id==row_id select test).FirstOrDefault();
        je.DeleteObject(result);
        je.SaveChanges();
        Response.Redirect ("");
    }
}

【问题讨论】:

标签: c# asp.net linq gridview


【解决方案1】:

将aspx文件中页面的EnableEventValidation属性设置为false

【讨论】:

  • 但出于安全原因,我不想将事件验证设置为 false.. 还有其他过程吗..??
  • 确保你只在它不是回发时绑定gridview,例如if(!Page.IsPostBack) { .... gridview1.DataSource=someDataSource; gridview1.DataBind(); .... }
  • public void showgv() { var mail = lblmail.Text; var result = (from test in je.jobposting orderby test.post_date where test.c_j_email == mail select test).ToList(); foreach (var items in result) { gvjob.DataSource = result; gvjob.DataBind(); } }
  • if (!IsPostBack) { showgv(); }
  • 我认为一切都很好,它应该可以工作,还是看看this link 使用ClientScriptManager.RegisterForEventValidation
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多