我正在尝试添加样式并在OnRowDataBound事件中向我的GridView添加行行为(更改光标并添加onmouseover和onmouseout以突出显示一行)。当我使用HtmlTextWriter在该方法中显示行的标记时,一切看起来都很好。但是,在浏览器端的页面源中,我的< tr>元素根本就没有属性。如果我将标记转储到页面的OnPreRender或OnPreRender完成事件中,我发现我的更改已经消失了。这是怎么回事?
我正在使用VS2010 Professional并以3.5框架为目标。
更新:我尝试了一些不同的东西来确定出错的地方。我将GridView和GridViewRow子类化,以便我可以在一些方法调用前面确定我的设置何时被轰炸。事实证明,在我的属性被删除的GridView.RenderControls()中。我不明白这一点,因为有很多使用这种技术添加javascript事件的例子(包括在这个网站上)。我最终通过覆盖我的子类中的RenderControl()方法并使用它来调用base.Render()而不是base.RenderControl()来获得成功...奇怪但是真的。
答案 0 :(得分:1)
我最终通过继承GridView然后覆盖我的子类中的RenderControl()方法并使用它来调用base.Render()而不是base.RenderControl()来获得成功。奇怪但真实。