На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Редактирование строк в GridView , На основе шаблонов
    Всем, привет!
    Помогите пожалуйста разобраться c редактированием строк в GridView, в случае когда он построен при помощи шаблонов.
    Допустим есть GridView (для примера один столбец):CODE
    ExpandedWrap disabled
      <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".
    Пробывал также писать обработчик события
    ExpandedWrap disabled
      protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
          {
              GridView1.EditIndex = e.NewEditIndex;
          }

    Где насильно пытаюсь активировать строку редактирования.
    После нажатия на "Edit" ошибка не вылетает, но TextBox1 для редактирования не появляется.
      Может имеет смысл использовать что-нить стандартное для источника данных ?
      Так для SQLDataSource подобная ошибка говорит о пустом параметре UpdateQuery в SQLDataSource (в случае MsSQL).
      + видимо надо дополнить <asp:TextBox ID="имя_поля" runat="server"> <%# Bind("имя_поля")%></asp:TextBox>

      интересно а как реализовать подтверждение удаления строки в GreedView ?
      Сообщение отредактировано: smart_newline -
        я тоже советую использовать SqlDataSource
        + зачем если ты просто редактируешь текст использовать TemplateField, можно обойтись и так

        ExpandedWrap disabled
              <Columns>
                 <asp:BoundField DataField="ID" />
              </Columns>


        остальное за тебя сделает асп
          Может кто применяет GridView+ Ajax или к-нить специф.компонент для:
          -позиционирование на элементе для правки в случае множества строк (по Edit экран переходит в начало и приходится скроллить к элементу для правки)
          -сообщение о результате выполнения команды в всплыв.окне (точнее слое div аля Panel-Ajax animation)
          -правка во всплыв окне (точнее слое div аля Panel).

          Весь GridView в Ajax помещать как-то не хочется ...
            Как выделить строку в GridView по id строки (а не по индексу), если такового ID нет на тек.странице в GridView(AllowSorting=true), перейти на страницу с указанным ID, если ID нет - ничего не выделять.
            ExpandedWrap disabled
                      
              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 для позиционирования на выделенной записи.
            Сообщение отредактировано: smart_newline -
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0190 ]   [ 15 queries used ]   [ Generated: 20.05.24, 05:00 GMT ]