Как мне сохранить данные на странице для доступа из моего gridview? - PullRequest
1 голос
/ 01 декабря 2011

Я хочу посмотреть на таблицу данных в событии RowDataBound моего gridview и проверить, существует ли значение в текущем столбце gridview в таблице данных. Я бы просто создал свой datatable внутри события RowDataBound, но это означало бы, что для каждой строки вида сетки я выполняю обратное путешествие в базу данных и создаю datatable. Я предпочел бы сначала создать таблицу данных, а затем в моем событии RowDataBound получить доступ к таблице данных. Я знаю, как это сделать, используя, скажем, метку или скрытое поле на странице, но как именно я буду хранить данные на странице (или в переменной), которые доступны из события RowDataBound моего gridview? Могу ли я как-то передать данные в качестве аргумента в функцию RowDataBound? Похоже, я упускаю что-то очень простое здесь ...

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Объявите вашу DataTable как переменную уровня класса в вашем классе страницы.Вы можете получить к нему доступ любым способом.

2 голосов
/ 02 декабря 2011

Существуют контейнеры на стороне сервера, для которых контейнер Items может быть идеальным выбором. Вы можете обернуть свой DataTable свойством:

public DataTable TempData
{
    get
    {
        if ( this.Context.Items["tempdata"] != null )
            return (DataTable)this.Items["tempdata"];
        return null;
    }
    set
    {
         this.Context.Items["tempdata"] = value;
    } 
}

Тогда вы получите доступ к собственности:

this.TempData = yourdatatable;

и получить его где-нибудь

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