【问题标题】:asp.net gridview - select rowasp.net gridview - 选择行
【发布时间】: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 请求以注入意外值)。在您的情况下,看起来第三行导致了问题。我不知道解决方案(因此只有评论,而不是答案)。

标签: asp.net gridview


【解决方案1】:

感谢您的帮助以另一种方式找到了答案...而不是使用可见性属性 我将显示属性设置为无,一切都按原样工作......

<asp:CommandField ShowSelectButton="True" ItemStyle-CssClass="HiddenColumn" HeaderStyle-CssClass="HiddenColumn"/>


.HiddenColumn{display:none;} 

【讨论】:

    【解决方案2】:

    Adrian Godong 的评论是正确的。更正此问题的最简单方法是将 GridView 设置为仍生成 Select LinkBut​​ton,但将其 Visible 属性设置为 false。最后,设置 onclick 事件以触发 Select LinkBut​​ton 上的虚拟单击。这样,ASP.NET 事件将直接来自 Select 按钮,因此您不会被捕获为无效的回发安全检查。

    【讨论】:

      【解决方案3】:

      您也可以使用“RegisterForEventValidation”。

      检查这个: RegisterForEventValidation .net 3.5 gridview row, how to?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        • 2012-11-28
        • 2010-11-23
        • 2010-11-10
        • 1970-01-01
        • 2011-07-29
        • 2010-12-02
        相关资源
        最近更新 更多