2016-02-12 1 views
0

У меня есть основная сетка и подробное представление с привязкой SQL DataSource, которая по умолчанию установлена ​​на EditMode во время загрузки. И я разрешаю пользователю выбирать строку в моей основной сетке для загрузки представления деталей в модальном всплывающем окне (ключ данных предоставляется для просмотра подробностей для загрузки выбранных данных строки) и обновления данных подробного просмотра в базе данных при успешной записи и обновление пользователем. Когда пользователь вводит непредвиденные данные в подробном представлении, я пытаюсь показать соответствующие проверки для пользователя, используя сообщения предупреждения javascript на стороне клиента, и позволяет пользователю закрыть всплывающее окно Modal, используя опцию modal popup cancelCommand.
Примечание: здесь я не отменяя режим редактирования (Dont знаю, как сделать это на стороне клиента)Подробный просмотр в ASP.Net отменить по умолчанию editMode на стороне клиента

Проблема я столкнулся это, после того, как запись неправильно данных в деталях просмотра пользователь может выбрать, чтобы закрыть DetailsView и повторно открыть те же данные (выбрав ту же строку, которая была ранее выбрана в основной сетке). Теперь предыдущие неверные данные загружаются в детали (введенные пользователем), а не фактические/правильные данные из базы данных/SQL DataSource.

Я попытался настроить DetailsView ViewState на «false», и, хотя детальное представление пытается загрузить данные, занесены предыдущие неправильные значения. Может кто-то помочь мне решить эту проблему.

+0

Я решаемой данному вопросу, вызвав DataBind операцию DetailsView, на main Gridview ** onRowSelect ** command * Примечание. Для представления сведений в представлении viewstate установлено значение false, так что мы всегда привязываем данные к DetailsView. В моем сценарии, я не invlosed в любом дополнительном вызове в базу данных, так как мое SQLDataSource viewstate имеет значение true * –

ответ

0

я решил вышеуказанную проблему, вызвав DataBind операцию DetailsView, на главной Gridview- onRowSelect команда
Примечание: Для DetailsView, то ViewState установлено значение «ложь», так что мы связываем данные в DetailsView всегда. В моем случае, я не также занимался какой-либо дополнительный призыв к базе данных, так как мой SqlDataSource (связанный с DetailsView) ViewState устанавливается истинной

protected void MainGridView_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 

    if (e.CommandName == "select") 
    { 
     //Binds DetailsView with source data, not loading wrong data from edit mode if user selects previously selected same row again 
     DetailsView.DataBind(); 
     this.mdlPopup.Show(); 
    } 
} 
Смежные вопросы