【发布时间】:2009-07-05 22:26:28
【问题描述】:
我希望能够单击 gridview 行以选择行而不是使用选择链接。
我有下面的代码,它使该行可点击并像一个超链接一样......
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
If (e.Row.RowType = DataControlRowType.DataRow) Then
e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand';this.style.textDecoration='underline';")
e.Row.Attributes.Add("onmouseout", "this.style.textDecoration='none';")
e.Row.Attributes.Add("onclick", ClientScript.GetPostBackClientHyperlink(Me.GridView1, "Select$" + e.Row.RowIndex.ToString()))
End If
End Sub
....但随后我收到错误消息:
回发或回调参数无效。使用配置或页面中的 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。
有人知道如何解决这个问题吗?
谢谢,
【问题讨论】:
-
问题通常出现在您使用Javascript修改控件状态时。 ASP.NET 有一个内置的安全功能,可以散列控件返回的所有可能值(以防某些恶意用户修改 HTTP 请求以注入意外值)。在您的情况下,看起来第三行导致了问题。我不知道解决方案(因此只有评论,而不是答案)。