更改gridview以呈现thead元素

时间:2011-03-09 18:13:08

标签: asp.net gridview

我已经看过其他一些关于如何使其正常工作的帖子......但是他们似乎都没有关注你将GridView作为自己的自定义服务器控件发送的情况。

我试图设置这些属性以使GridView呈现一个thead元素,但我不断得到一个空引用异常。任何人?

这是我覆盖的DatBind方法

    new public void DataBind()
    {
        base.DataBind();
        UseAccessibleHeader = true;
        HeaderRow.TableSection = TableRowSection.TableHeader; //<<-- NRE here
        FooterRow.TableSection = TableRowSection.TableFooter;
    }

我希望将此逻辑封装在GridView控件中,而不是外部设置。我们正在尝试更新此行为,并且如果我们采用这种方法,则必须添加代码以在一千个不同的位置设置它。

1 个答案:

答案 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