powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update data from DataGrid (Web Form)
2 сообщений из 2, страница 1 из 1
Update data from DataGrid (Web Form)
    #32919620
sh2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh2
Гость
Настроил DataGrid на DataSet, но почему-то не работает обновление данных и сортировка.
Баг в обновлении данных состоит в том, что новые значений полей (которые пользователь изменил в TextBox-ах после нажатия на ссылку "Edit" - перехода в режим редактирования текущей записи - и на ссылку "Update" - окончание редактирование и самбит на сервер) не возвращаются!

Переход в режим редактирование записи - все работает ок:
Код: plaintext
1.
2.
3.
4.
5.
6.
private void grid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			grid.EditItemIndex = e.Item.ItemIndex;
			grid.DataBind();
                                      //После этого выбранная запись таблицы переходит в режим редактирования (появляются TextBox-ы)
		}

А метод, обрабатывающий Update данных, получает не новые значения полей таблицы (DataGrid-a), а предыдущие (сохраненные, а не измененные только что):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
		private void grid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			p.Pat_LastName =((TextBox)grid.Items[e.Item.ItemIndex].Cells[ 1 ].Controls[ 0 ]).Text;
			
			p.Pat_FirstName = ( (TextBox) e.Item.Cells[ 2 ].Controls[ 0 ] ).Text;
			p.Pat_PatronymicName = ( (TextBox) e.Item.Cells[ 3 ].Controls[ 0 ] ).Text;
			p.Pat_IHNumber = ( (TextBox) e.Item.Cells[ 4 ].Controls[ 0 ] ).Text;
			p.Pat_Sex =  ( (TextBox) e.Item.Cells[ 5 ].Controls[ 0 ] ).Text[ 0 ];
			
// Вытаскиваем ID записи для дальнейшего Update-а

                                      DataRow row = ds.Tables[ 0 ].Rows[ e.Item.DataSetIndex ];
			p.Row_uid = row["row_uid"].ToString();

			

			try
			{
				updateData(p);
			}
			catch (System.Exception ex)
			{
				//proccess exception
				return;
			}

			
// Убираем режим редактирования
			grid.EditItemIndex = - 1 ;
			grid.DataBind();
		}


Вот именнно здесь:
Код: plaintext
1.
((TextBox)grid.Items[e.Item.ItemIndex].Cells[ 1 ].Controls[ 0 ]).Text;

должно лежать как я понимаю новое значение поля, которое я должен вытащить и сохранить в БД. А там лежит старое, что делать? Может я что-то пропустил?



Насчет сортировки. Вот зарегистрированный метод для сортировки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
private void grid_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
		{
			//do sorting
			dv.Sort = e.SortExpression + " DESC";
                                      // можно плюс:
			//grid.DataBind();
		
		}

После нажатия на ссылку для сортировки (заголовок столбца) происходит обновление страницы, но сортировка не выполняется.
Причем e.SortExpression - проверил содержит реальное имя Data Field соответствующего столбца. Также у всех столбцов прописал Sort Expression совпадающим с Data Field.

Что неправильно, ведь все по БуКварю Масдаевскому делаю???
...
Рейтинг: 0 / 0
Update data from DataGrid (Web Form)
    #32934709
OstapBender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ochen' sil'no zavisit ve eto ot togo chto delaetsya v PageLoad i ViewStateEnable.
Poshi mne email yshteinm@hotmail.com skinu primer kak vse eto delaetsya
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update data from DataGrid (Web Form)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]