【问题标题】:Calling e.Row.Parent.ClientID generate another ID for its GridView调用 e.Row.Parent.ClientID 为其 GridView 生成另一个 ID
【发布时间】:2016-09-28 19:41:13
【问题描述】:

问题很简单:在 ASP.NET GridView 中,如果在 RowDataBound 事件中使用属性 e.Row.Parent.ClientID,.NET 会为 GridView 生成另一个标识符,并且如果您的页面中有 javascripts为 GridView 使用 ClientID,它们将无法工作。

要重现该问题,您必须使用一个 GridView 创建一个 WebForm,一个客户端 HTML 按钮必须像这样访问 GridView 标识符:

<input id="Button1" type="button" value="Test" onclick="alert('The next message does not have to be null: ' + document.getElementById('<%=gridViewTest.ClientID %>'))" />

如果在 gridViewTest_RowDataBound 中你不使用 e.Row.Parent.ClientID 属性,一切都会好起来的,但如果你出于某种目的使用 e.Row.Parent.ClientID,.NET 将为 GridView 生成另一个 ID并且 HTML 按钮将不再起作用。

这是预期的行为,还是错误? 有人遇到过这个问题吗?

谢谢

【问题讨论】:

    标签: asp.net gridview rowdatabound


    【解决方案1】:

    这是因为e.Row.Parent 不是GridView(在您的情况下为gridViewTest),GridView 的子代

    再上一层就可以了,所以只需添加一个.Parent 就可以了

    e.Row.Parent.Parent.ClientID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多