2014-12-24 2 views
1

У меня есть Gridview, где, когда пользователь нажимает на любую строку, пользователь должен перейти на страницу редактирования с существующими данными, указанными на странице.Gridview Редактировать часть

Итак, мои вопросы

  1. Должен ли я сделать новую страницу ASPX для редактирования части?

  2. Как взять соответствующих пользователей с существующими данными на новой странице.

Пожалуйста, обратитесь мой GridView код с моей страницы ASPX: -

<asp:GridView ID="grdUser" 
      AllowPaging="true" 
      AutoGenerateColumns="False" 
      OnDataBound="grdUser_DataBound" 
      OnRowDeleting="grdUser_RowDeleting" 
      OnPreRender="PreRenderGrid" 
      runat="server" 
      Width="100%" 
      border="1" 
      DataKeyNames="Id" 
      PageSize="2" 
      OnPageIndexChanging="grdUser_PageIndexChanging" 
      EnableSortingAndPagingCallbacks="false" 
      CssClass="pagi"> 
      <Columns> 
       <asp:TemplateField HeaderText="Select" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td"> 
        <ItemTemplate> 
         <asp:CheckBox ID="chkDelete" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="username" HeaderText="UserName" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td" /> 
       <asp:BoundField DataField="email" HeaderText="Email Id" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td" /> 
       <asp:BoundField DataField="usertype" HeaderText="UserType" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td" /> 
       <asp:BoundField DataField="active" HeaderText="Active" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td" /> 
       <asp:TemplateField HeaderText="Action" HeaderStyle-Width="15%" ItemStyle-Width="30" HeaderStyle-CssClass="k-grid td"> 
        <ItemTemplate> 
         <asp:ImageButton ID="btnDelete" AlternateText="Delete" ImageUrl="~/images/delete.png" runat="server" Width="15" Height="15" CommandName="Delete" CommandArgument='<%# Eval("Id") %>' CausesValidation="false" OnClientClick="return confirm('Are you sure you want to delete this record?')" /> 
        </ItemTemplate> 
        <ItemTemplate> 
         <asp:ImageButton ID="btnEdit" AlternateText="Edit" ImageUrl="~/images/edit.png" runat="server" Width="15" Height="15" CommandArgument='<%# Eval("Id") %>' CausesValidation="false" onClick="" /> 
        </ItemTemplate> 

       </asp:TemplateField> 
      </Columns> </Gridview> 

Дайте мне знать, что может быть сделано для того, чтобы достичь этого. Я уже написал код обновления. Просто нужна помощь по двум вышеуказанным вещам.

ответ

1

Ответы на вопросы:

  1. Должен ли я сделать новую страницу ASPX для редактирования части?

    Ans. Нет, вам не нужна отдельная страница для редактирования, то, что вы можете сделать, это дать кнопку команды в дополнительном столбце, в котором вы можете редактировать, щелкая мышью по которой текстовые поля привязаны к вашим данным на одной странице.

  2. Как взять соответствующих пользователей на новую страницу.

    Ans. Если вы действительно хотите использовать другую страницу, просто используйте кнопку ссылки что-то, что можно добавить в столбец, используя поле шаблона, которое перенаправляет вас на вашу страницу изменения, передав уникальный идентификатор записи в строке запроса. На странице модификации вы читаете запрос, выбираете идентификатор и извлекаете данные из таблицы базы данных на основе идентификатора.

что-то вроде этого:

в вашем GridView добавить поле:

<asp:TemplateField HeaderText="Modify"> 
<ItemTemplate> 
<asp:HyperLink ID="hypEdit" runat="server" NavigateUrl="" Text="Modify"></asp:HyperLink> 
</ItemTemplate> 
</asp:TemplateField> 

В вас коде позади в строке DataBound случае gridvew

protected void grdUser_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      HyperLink Hyp = (HyperLink)e.Row.FindControl("hypEdit"); 
      Hyp.NavigateUrl = "~/ParentDir/youModifyPage.aspx?ID=" + ((Label)e.Row.FindControl("lblId")).Text; 
      //here lblID refers to a label field added in your gridview to hold ID, 
      //I see you have already retrieved the id in an image button 
     } 

    } 

обязательно включите onrowdatabound в вашем gridview как onrowdatabound="grdUser_RowDataBound"

+0

Codeek: Я хочу использовать другую страницу для этой части, как этого хочет мой старший. Поэтому дайте несколько советов, как передать уникальный идентификатор в строке запроса. Спасибо –

+0

Большое спасибо, я применил логику, и она работает для меня. Мне просто нужно очистить поля от Cancel и перенаправить его на предыдущую страницу. –

+0

, зачем нужно очищать все поля нажатием кнопки отмены, если вы собираетесь перенаправить на предыдущую страницу. : P вы можете пропустить эту часть :) – Codeek