无效的回发或回调参数。使用<pages enableeventvalidation =“true”> </pages>启用事件验证

时间:2014-05-31 22:28:36

标签: javascript asp.net gridview

我有一个带有gridview的usercontrol,它有一列。 此列是一个boundfield列,位于数据表的代码隐藏绑定中。

在page-init sub中:

 myResult = sd.getUsers(dt, err)
If myResult = True Then

  Me.dgUsers.DataSource = dt
  Me.dgUsers.DataBind()
Else
  pnUsersMain.Controls.Clear()
  Dim lit As New Literal
  lit.Text = err
  pnUsersMain.Controls.Add(lit)
End If

在绑定过程中,我添加了&#34; OnClick&#34;事件到每一行:

 Private Sub dgUsers_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles dgUsers.RowDataBound
e.Row.Attributes.Add("onClick", Page.ClientScript.GetPostBackEventReference(dgUsers, "Select$" & e.Row.RowIndex.ToString))

End Sub

现在当我点击gridview中的一行时,会出现此错误:

  

无效的回发或回调参数。使用配置或&lt;%@ Page EnableEventValidation =&#34; true&#34;启用事件验证。 %GT;在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。

我试过了:

  • 将gridview放在更新面板上。

在更新面板上,如果我将postbacktrigger放到此gridview,我会收到上述错误。如果我删除postbacktrigger,根本没有任何事情发生。

  • 将数据绑定代码放在Render sub。

它没有改变任何东西。

  • 更新代码隐藏中不同位置的面板更新,同样的错误结果。

  • 用(链接)按钮字段列替换boundfield列按预期方式执行,但是我必须指示用户单击文本而不是列的空白部分。所以这不是我想要的。我需要整个gridview单元格可以点击。

我还能做些什么来摆脱这个恼人的错误?

0 个答案:

没有答案