Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.86.149] |
|
Сообщ.
#1
,
|
|
|
Всем, привет!
Помогите пожалуйста разобраться c редактированием строк в GridView, в случае когда он построен при помощи шаблонов. Допустим есть GridView (для примера один столбец):CODE <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("ID") %>'> </asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> Как источник данных я использую объект класса производного от ListArray - список объектов имеющих своиства которые я использую в Text=''. Т.е. своиство ID есть у объекта в списке. Данные GridView выводит верно. Подскажите пожалуйста как сделать редактирование строк. Я пытался выставить свойство AutoGenerateEditButton = "true" После нажатия на "Edit" - ошибка (Нет обработчика события "Нажатие на Edit"). И пробывал добовлять CommandField в GridView - тоже ошибка после нажатия на "Edit". Пробывал также писать обработчик события protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; } Где насильно пытаюсь активировать строку редактирования. После нажатия на "Edit" ошибка не вылетает, но TextBox1 для редактирования не появляется. |
Сообщ.
#2
,
|
|
|
Может имеет смысл использовать что-нить стандартное для источника данных ?
Так для SQLDataSource подобная ошибка говорит о пустом параметре UpdateQuery в SQLDataSource (в случае MsSQL). + видимо надо дополнить <asp:TextBox ID="имя_поля" runat="server"> <%# Bind("имя_поля")%></asp:TextBox> интересно а как реализовать подтверждение удаления строки в GreedView ? |
Сообщ.
#3
,
|
|
|
я тоже советую использовать SqlDataSource
+ зачем если ты просто редактируешь текст использовать TemplateField, можно обойтись и так <Columns> <asp:BoundField DataField="ID" /> </Columns> остальное за тебя сделает асп |
Сообщ.
#4
,
|
|
|
Может кто применяет GridView+ Ajax или к-нить специф.компонент для:
-позиционирование на элементе для правки в случае множества строк (по Edit экран переходит в начало и приходится скроллить к элементу для правки) -сообщение о результате выполнения команды в всплыв.окне (точнее слое div аля Panel-Ajax animation) -правка во всплыв окне (точнее слое div аля Panel). Весь GridView в Ajax помещать как-то не хочется ... |
Сообщ.
#5
,
|
|
|
Как выделить строку в GridView по id строки (а не по индексу), если такового ID нет на тек.странице в GridView(AllowSorting=true), перейти на страницу с указанным ID, если ID нет - ничего не выделять.
int id = 0; try {id=Convert.ToInt16(Request.QueryString["id"].ToString());} catch {} if (id>0) {GridView1.SelectedIndex = id; считать самому Index,Page как-то не хочется т.е. зная id, PageSize найти его PageIndex, SelectedIndex пока приходит на ум заполнение массива ID, и расчет по нему PageIndex, SelectedIndex для позиционирования на выделенной записи. |