修改gridview的html输出

时间:2010-07-28 14:24:55

标签: html asp.net gridview

我正在尝试在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 ,所以我认为回发应该不是问题。

2 个答案:

答案 0 :(得分:1)

我不知道为什么,但现在它有效。我相信它可能与提供旧版本代码的服务器有关,因为当我添加跟踪注释以查看发生了什么时,即使在我编译和重新加载后也没有显示任何内容。

现在,突然间,一切都按预期工作。我唯一做的就是重新编译,所以我认为问题是旧代码。对于其他任何发现这一点的人:问题中提供的代码应该有效 - 只需确保它实际上是为浏览器提供的代码......

答案 1 :(得分:0)

嗯......这应该有用。

要检查的事项:

  • 你是如何看待来源的?如果您使用Firebug之类的工具,则显示的源不是您的浏览器收到的源。它可能已从显示中删除了该属性,因为它在“标准”HTML中不存在。使用浏览器的“查看html源”功能检查源代码,确保它没有呈现。
  • 也许你有一个编辑渲染HTML的库(我曾经使用过一次,它生成了一个更友好的CSS),它也可能删除了未知属性。
  • 我知道这很明显,但确保无法调用Attributes.Clear()

我正在考虑它,但这个片段应该有效...
See this post,但我不确定它会有所帮助。

更新: 请注意,您需要在Gridview声明中声明行数据绑定方法,它不会自动发生:

<asp:GridView ID="gvMyGrid" runat="server" onrowdatabound="gvMyGrid_RowDataBound">
...
</asp:GridView>