изменить сетку для отображения элемента thead - PullRequest
2 голосов
/ 09 марта 2011

Я видел несколько других сообщений о том, как заставить это работать ... однако ни одна из них, похоже, не касается случая, когда вы использовали GridView как свой собственный серверный элемент управления.

Я пытаюсь установить эти свойства, чтобы GridView отображал элемент thead, но я постоянно получаю исключение нулевой ссылки. Любой берущий?

Вот метод DatBind, который я переопределил

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

Я хочу, чтобы эта логика была инкапсулирована в элементе управления GridView, а не установлена ​​снаружи. Мы пытаемся обновить это поведение и должны были бы добавить код, чтобы настроить его в тысяче разных мест, если бы мы выбрали такой подход.

1 Ответ

2 голосов
/ 09 марта 2011

Видимо, событие pre render - лучшее место для этого.Хитрость заключается в том, что в некоторых обстоятельствах, которые меня осветили, свойство 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 раньше мне не приходило в голову, что иногда оно равно нулю ииногда это не ... дох

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...