Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 238

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 232 233 234 235 236 237 < 238 > 239 240 241 242 243 244 .. 260 >> Следующая

данных и указать, имеет ли пользователь право редактировать их содержимое. Кроме того, здесь разрешается добавить кнопки для редактирования, обновления и удаления записей.
Обработка событий, связанных
с редактированием содержимого DataGrid
Как бы то ни было, задание свойств элемента управления DataGrid при помощи диалогового окна Property Builder в действительности не предоставляет пользователю возможности редактировать данные, с которыми связан DataGrid.
У элемента управления DataGrid на рис. 14-5 есть столбец Edit, Update, Cancel и столбец Delete. Если связать этот элемент управления с источником данных, Web-страница выглядит аналогично показанной на рис, 14-6,
3 Sbu|ppii4$C(Hl|ntlalab*Mi M*n>tDfl 1л*НиН 1'крЬсриг
¦ Й< Е* F*V*H И* ОФ
T: of Order Ш 00
Pi nrliii-1 N 1fi,p ,пГ|1т IfnltPiir* Е|г»ц1Ыл| I
IM W E(Hj Offeit |
j3 ;-aVa -.ir l IMOO jmoo!Ji»j _gjg»j
Lag ft
t'.f 1С Ed) [ Pd«« i
Рис. 14-6. Web-страница, использующая средства редактирования данных, предоставляемые элементом управления DataGrid
пользователь щелкает кнопку Edit первого товара в корзине. DataGrid не позволяет пользователю редактировать содержимое записи напрямую. Вместо этого страница обращается к серверу, где наступает событие EditCommand элемента управления DataGrid. В это событие вам следует вручную добавить код, который задавал бы свойству Editllemlndex (порядковый номер редактируемого
элемента) DataGrid соответствующее значение.
Затем, когда вы вызовете метод/Л/Л/Л'/'/с/ элемента управления DataGrid, DataGrid добавит в HTML-таблицу элементы управления TextBox, которые позволят пользователю изменить содержимое записи. Кроме того, DataGrid добавит для редактируемой записи кнопки Update и Cancel.
19-sgsa
554
Часть IV Создание эффективных приложений с использованием ADO.NET
Передача изменений в БД
После того как пользователь внесет нужные изменения и щелкнет кнопку 1 |хЬ гена ступит событие LpdateCommantbneMenTa управления EitaSrid Его аргументы позволяют определить, какую запись изменил пользователь, а также получить ее текущее содержимое. Тем не менее добавить логику для передачи измененного содержимого записи в БД вам придется вручную.
Внесение изменений в объект DataSet
Чтобы внести изменения в объект DataSet найдите с помощью аргументов события UpdateCommand соответствующий объект DdtaRow. внесите изменения и затем передайте их с помощью объекта DataAdapter. Следующий фрагмент кода средствами события UpdateCommand получает название и новое ко-
личество товара, сведения о котором в корзине изменил пользователь. Затем код передает новые данные в БД с помощью объекта DataAdapter.
Visual Basic .MET
Private Sub gridCart_UpdateCommand(ByVal source As Object, _
ByVai e As DataGridCommandEventArgs) Dim daCart As New OleDbDataAdapterQ Dim tbICart As New DataTableQ
Dim vueCart As New OataViewttblCart; vueCart.Sort = "ProductName" Dim strNewQuantity As String
strNewQuantity = CType(e.Item.Ceals(2).Controls(0), TextBox).Text Dim intlndexTc-EditAs Integer
intlndexToEdtt = vueCart.Find(e.Item. Cells(t).Text) vueCart(int3ndexToEdlt){ "Quantity") = CInt(strNewQuantity) daCart.Update(tblCart) End Sub
Visual C# NET
private void gridCart updateCommaralcobject source,
DataGridCommandEventArgs e)
¦I
OleObDataAdapter daCart = new OleDbDataAdapterO; DataTable tbICart = new DataTableO;
DataVie* vueCart = new DataView(tblCart); vueCart.Sort = "ProductMame"; string strNewQuantity;
strNewQuantity = ((TextBox) e.Item.Cells[2].Controls^]).Text: int intlndexToEdit;
intlndexToEdit = vueCart.FindCe.Item.Cells(1).Text); vueCart[intIndexToEdit]["Quantity"! = Convert.ToInt32(strNewQuantity); daCart.Update(tblCart);
ГЛАВА 14 Создание эффективных Web-приложений 555
Создание собственных запросов UPDATE
Показанный в предыдущем разделе фрагмент кода с помощью аргументов события UpcialeCommcuh получает название и новое количество .<:.>; . сведения о котором Б корзине изменил пользователь. Вместо того чтобы менять содержимое DutatiU на основе этих данных и передавать коррективы БД с помощью объекта DataAdapter, стоит воспользоваться этой же информацией и создать собственный запрос UPDATE, например:
UPDATE SncppineCarts SET Quantity = <SewOuantity>
WHERE ProductName = <ProductName> AND ShoppingCartID = <SessionID>
Приложение ShoppingCart
Ня прилагаемом к книге компакт-диске записано Web-приложение под названием ShoppingCart, позволяющее перемещаться по каталогу БД Nnnlnvhul и добавлять товары из него в корзину. Кроме того, пользователь может изменять содержимое корзины, добавляя товары или изменяя их количество. Приложение также позволяет разместить заказ и помещает его в таблицу Order Details БД Northwind.
Web-приложение включает две дополнительных Web-страницы, StoreCartln-Database и предоставляющих одинаковую
Единственное отличие этих страниц в том, где они хранят содержимое корзины пользователя. Как следует из названий, страница хранит со-
держимое корзины пользователя в БД, а страница StoreCartlnViewState — в объекте ViewState.
Предыдущая << 1 .. 232 233 234 235 236 237 < 238 > 239 240 241 242 243 244 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100