我希望能够点击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
....但后来我收到错误消息:
无效的回发或回调参数。使用配置或<%@ Page EnableEventValidation =“true”%>启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。
任何人都知道如何克服这个问题?
谢谢,
答案 0 :(得分:7)
感谢您帮助找到答案的另一种方式......而不是使用visibility属性 我将display属性设置为none,一切都按原样运行......
<asp:CommandField ShowSelectButton="True" ItemStyle-CssClass="HiddenColumn" HeaderStyle-CssClass="HiddenColumn"/>
.HiddenColumn{display:none;}
答案 1 :(得分:0)
Adrian Godong的评论是正确的。解决此问题的最简单方法是将GridView设置为仍然生成Select LinkButton,但将其Visible属性设置为false。最后,设置onclick事件以在Select LinkButton上触发虚拟单击。这样,ASP.NET事件将直接来自“选择”按钮,因此您不会被捕获为无效的回发安全检查。
答案 2 :(得分:0)
您也可以使用“RegisterForEventValidation”。
检查一下: RegisterForEventValidation .net 3.5 gridview row, how to?