我已经看过其他一些关于如何使其正常工作的帖子......但是他们似乎都没有关注你将GridView作为自己的自定义服务器控件发送的情况。
我试图设置这些属性以使GridView呈现一个thead元素,但我不断得到一个空引用异常。任何人?
这是我覆盖的DatBind方法
new public void DataBind()
{
base.DataBind();
UseAccessibleHeader = true;
HeaderRow.TableSection = TableRowSection.TableHeader; //<<-- NRE here
FooterRow.TableSection = TableRowSection.TableFooter;
}
我希望将此逻辑封装在GridView控件中,而不是外部设置。我们正在尝试更新此行为,并且如果我们采用这种方法,则必须添加代码以在一千个不同的位置设置它。
答案 0 :(得分:2)
显然,预渲染事件是放置它的最佳位置。诀窍是,在某些情况下,我不知道,HeaderRow属性将为null,所以我只需要检查null =(
private void MakeAccessible()
{
if (HeaderRow != null && !AllowPaging)
{
UseAccessibleHeader = true;
HeaderRow.TableSection = TableRowSection.TableHeader;
FooterRow.TableSection = TableRowSection.TableFooter;
}
}
protected override void OnPreRender(EventArgs e)
{
MakeAccessible();
}
Lol并没有发生在我之前,有时候它是空的,有时它不是...... doh