如何让 这应该这样做: 我在 答案中的代码需要继续 我使用以下代码执行此操作: 否则(取决于渲染网格的方式),您将抛出以下异常: 该表必须按标题,正文和页脚的顺序包含行部分. 该 我实际上覆盖了Asp.net GridView来制作我自己的自定义控件,但你可以将它粘贴到你的aspx.cs页面并按名称引用GridView而不是使用custom-gridview方法. 仅供参考:我没有测试过页脚逻辑,但我知道这适用于Headers.GridView
控件呈现
标签?我知道
.UseAccessibleHeaders
让它代替 ,但我不能让它 出现.
1> Phil Jenkins..:gv.HeaderRow.TableSection = TableRowSection.TableHeader;
`HeaderRow`属性将为`null`,直到`GridView`已经被数据绑定,因此在运行上面的代码行之前一定要等到数据绑定发生.
正如下面的评论,至少在绑定后的ASP.NET 4.5还不够晚 - 但是它适用于OnPreRender.
2> 小智..:OnRowDataBound
事件中使用它:protected void GridViewResults_OnRowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.Header) {
e.Row.TableSection = TableRowSection.TableHeader;
}
}
这是唯一对我有用的解决方案.谁设计了这些可怕的控件?
我将您的代码插入OnRowCreated事件并使其正常工作.
3> ASalvo..:Page_Load
或GridView_PreRender
.我把它放在一个被调用的方法之后Page_Load
得到了一个NullReferenceException
.
你也可以放入`DataBound`事件.`grid.DataBound + =(s,e)=> {grid.HeaderRow.TableSection = TableRowSection.TableHeader; };`
不知道.NET 4.5现在是否有所不同......但我在_DataBound和_PreRender事件处理程序中都得到HeaderRow为null.这可能与我在gridView中使用ASP.NET Web Forms新的"模型绑定"功能有关.
4> MikeTeeVee..:if
我添加的陈述很重要.
protected override void OnPreRender(EventArgs e)
{
if ( (this.ShowHeader == true && this.Rows.Count > 0)
|| (this.ShowHeaderWhenEmpty == true))
{
//Force GridView to use instead of - 11/03/2013 - MCR.
this.HeaderRow.TableSection = TableRowSection.TableHeader;
}
if (this.ShowFooter == true && this.Rows.Count > 0)
{
//Force GridView to use instead of - 11/03/2013 - MCR.
this.FooterRow.TableSection = TableRowSection.TableFooter;
}
base.OnPreRender(e);
}
this
对象是我的GridView控件.
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有