Почему GridView сбрасывает свои значения до того, что было до редактирования пользователем? - PullRequest
0 голосов
/ 24 августа 2009


Если я связываю GridView (через атрибут DataSourceID ) с SqlDataSource и устанавливаю SelectCommand и UpdateCommand атрибуты , то все работает отлично.

Но если мы вручную вызовем GridView.DataBind внутри Page_Load () , тогда SqlDataSource не выполнит никаких обновлений, даже если SqlDataSource. Обновление событий и SqlDataSource.Updated происходит при нажатии кнопки Обновить GridView. Я думаю, что это связано с тем, что GridView сбрасывается до того, что было до редактирования пользователем:


a) Почему GridView сбрасывает свои значения, если мы вручную вызываем DataBind () внутри Page_Load () ?

b) Поскольку Операция обновления не работает при ручном вызове DataBind , я бы тогда предположил, что операция Delete также не будет работать, но делает. Почему?


ура

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Я считаю, что Page_Load запускается до того, как ваши изменения вступят в силу, поэтому вы связываете старые данные перед запуском обновлений

Оберните привязку в If Not IsPostBack, когда под Page_Load, я считаю, что это решит вашу проблему.

0 голосов
/ 24 августа 2009

Вам нужно назначить GridView с источником, а также привязать данные к нему. Что-то вроде следующего кода:

Page_Load 

if(!Page.IsPostBack) 
{
    gv1.DataSource = GetData(); 
    gv1.DataBind(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...