我正在尝试在RowDataBound事件处理程序中修改GridView的输出,但它不起作用 - 没有任何反应。
我的代码:
Private Sub MyGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles MyGridView.RowDataBound
e.Row.Attributes.Add("data-xkoordinat", 0)
End Sub
我期待看到的内容:
<tr data-xkoordinat="0">..</tr>
出来的是什么
<tr>...</tr>
如何添加属性?
更新:
我已经研究了一些,并注意到RowDataBound
方法中没有任何内容 - 如果有的话?发生数据绑定的Page_Load
例程如下:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Using db As IDatabaseAdapter = Locator.GetDatabaseAdapter()
db.Open()
MyGridView.DataSource = db.ExecuteReader("MatpunktLista", True, {db.CreateParameter("id_uppdrag", Request.QueryString("id_uppdrag"))})
MyGridView.DataBind()
End Using
End Sub
这里有什么东西可以导致行不是数据绑定的吗?我正在通过 F5 重新加载,或者在我的浏览器中选择地址字段并点击 Enter ,所以我认为回发应该不是问题。
答案 0 :(得分:1)
我不知道为什么,但现在它有效。我相信它可能与提供旧版本代码的服务器有关,因为当我添加跟踪注释以查看发生了什么时,即使在我编译和重新加载后也没有显示任何内容。
现在,突然间,一切都按预期工作。我唯一做的就是重新编译,所以我认为问题是旧代码。对于其他任何发现这一点的人:问题中提供的代码应该有效 - 只需确保它实际上是为浏览器提供的代码......
答案 1 :(得分:0)
要检查的事项:
我正在考虑它,但这个片段应该有效...
See this post,但我不确定它会有所帮助。
更新: 请注意,您需要在Gridview声明中声明行数据绑定方法,它不会自动发生:
<asp:GridView ID="gvMyGrid" runat="server" onrowdatabound="gvMyGrid_RowDataBound">
...
</asp:GridView>