【发布时间】:2016-04-18 11:44:20
【问题描述】:
我正在尝试动态修改所有 gridviews 列 HeaderText,但我一直遇到一些 gridviews 的问题。我正在使用母版页修改Page.PreRenderComplete 页面中的所有 GridView,我注意到即使在更改 HeaderText 之后,gridview 在加载时也会显示旧文本。
为了调试,我遍历了列并使用以下代码在特定页面上的 DataBound 事件中修改了一个特定 Gridview 的 HeaderText...
Private Sub gv_DataBound(sender As Object, e As EventArgs) Handles gv.DataBound
For Each col As DataControlField In gv.Columns
col.HeaderText += "_SOMESTRING"
Next
End Sub
在浏览页面时,我可以看到它正在运行并且标题文本正在更新。当我继续页面加载并且出现 GridView 时,标题文本显然已恢复。
什么可能导致这种情况发生?是否有一些事件可以在 PreRenderComplete 或 Gridviews Databound 事件之后运行?
【问题讨论】:
-
当我试图重现问题时,我遇到了一个有趣的情况:
DataBound事件被反复调用,直到我得到一个stackoverflow。但是,如果我在 GridView 的PreRender事件中移动代码,一切正常(除了使用上面的代码,每次回发时都会扩展标题文本)。 -
我在 GridViews PreRender 事件中放置了相同的代码,页面仍然加载了原始 HeaderTexts。