Реклама:

CancelCommand:

private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {

DataGridl.Editltemlndex = -1; DataGrid1.DataBind();

1.8.8. Пробный запуск приложения

Сохраним приложение. В окне структуры проекта (Solution Explorer) отыщем узел формы WebForml.aspx и щелкнем по иконке узла правой кнопкой мыши. В появившемся контекстном меню выберем элемент Web Form и затем Build and Browse. Содержимое Web-страницы будет показано в среде Visual Studio. Для того чтобы просматривать содержимое страницы в Internet Explorer, правой кнопкой мыши щелкнем по узлу формы WebForml.aspx в окне Solution Explorer и выберем элемент Browse with, а затем из списка - Internet Explorer.

Первоначально, пока мы не приступили к редактированию данных, вид DataGrid такой же, как и в предыдущих примерах, за исключением дополнительного столбца (рис. 1.50).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.50

Выберем какую-нибудь запись и щелкнем по ссылке Edit в дополнительном столбце. Текущая запись перейдет в состояние редактирования (рис. 1.51).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.51

Как можно заметить, для редактируемой строки служебный столбец содержит две ссылки - Update (запомнить изменения) и Cancel (отменить изменения). Обработчик события для Cancel нами задан в предыдущем разделе. Мы можем нажать на эту ссылку. Тогда все внесенные в запись изменения пропадут и DataGrid вернется в состояние, показанное выше на рис. 1.50.

1.8.9. Обработчик события нажатия ссылки Update

1. Выберем элемент управления DataGrid мышью в форме и перейдем к окну и перейдем к списку событий свойств. В нем на панели кнопок нажмем кнопку элемента управления.

2. Выберем событие UpdateCommand, дважды щелкнем мышью в поле данных и в появившемся редакторе программного кода зададим обработчик события нажатия ссылки Update, сопровождая этот процесс комментариями.

3. Получим значение первичного ключа текущей строки DataGrid, изменения в которой нужно запомнить в базе данных. Текущая строка возвращается свойством Item объекта e. Объект e доступен как параметр обработчика события UpdateCommand элемента управления DataGrid. Свойство Itemlndex возвращает первичный ключ текущей сроки:

string key = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();

4. Получаем значения столбцов в обрабатываемой строке DataGrid, безотносительно к тому, изменялись значения этих столбцов или нет. Обращение к столбцу носит вид e.Item.Cells[Номер].Controls[0] и возвращает ссылку на элемент управления, которую мы приводим к типу TextBox, а затем, через свойство TextBox.Text - к строковому виду. Значение каждого столбца сохраняем в отдельной переменной.

TextBox tb;

tb = (TextBox) e.Item.Cells[2].Controls[0]; string sNazv = tb.Text; //столбец Nazv

tb = (TextBox) e.Item.Cells[3].Controls[0]; string sFakultet = tb.Text; //столбец Fakultet

tb = (TextBox) e.Item.Cells[4].Controls[0]; string sKorpus = tb.Text; //столбец Korpus

tb = (TextBox) e.Item.Cells[5].Controls[0]; string sSostav = tb.Text; //столбец Sostav

5. Теперь в таблице Kaf набора данных nd1 отыщем ту запись, с которой работаем в DataGrid. Сделать это легко, поскольку нам известно значение столба первичного ключа этой записи (см. выше п. 3, переменная key):


⇐ Предыдущая страница| |Следующая страница ⇒