2013-03-19 1 views
0

У меня есть gridview, и я не очень разбираюсь в asp.net Edit, Delete, Update команды строки gridview. Здесь я хочу изменить режим строки gridview для редактирования, щелкнув режим редактирования. но он ничего не делает, когда я нажимаю кнопку редактирования. может кто-нибудь проверить, что может быть неправильным?Ошибка редактирования gridview. строка не изменяет режим для обновления

<asp:GridView ID="GridViewTopics" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" 
          GridLines="Horizontal" OnRowEditing="GridViewTopics_RowEditing" CssClass="gridstyle" 
          Style="margin-left: 30px;" Width="230px"> 
          <Columns> 
           <asp:TemplateField HeaderText="Topics"> 
            <ItemTemplate> 
             <table> 
              <tr> 
               <td> 
                <div> 
                 <asp:Label ID="LabelTopicName" runat="server" Text='<%# Eval("Name") %>'></asp:Label> 
                </div> 
               </td> 
               <td valign="top" align="right" > 
                <div> 
                 <asp:LinkButton ID="LinkButtonEdit" runat="server" Text="Edit" CommandName="Edit"></asp:LinkButton> 
                </div> 
               </td> 
              </tr> 
             </table> 
            </ItemTemplate> 
            <EditItemTemplate> 
             <asp:TextBox ID="TextBoxEditTopicName" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox> 
             <asp:LinkButton ID="LinkButtonUpdate" runat="server" CausesValidation="True" CommandName="Update" 
              Text="Update"></asp:LinkButton> 
             <asp:LinkButton ID="LinkButtonCancel" runat="server" CausesValidation="False" CommandName="Cancel" 
              Text="Cancel"></asp:LinkButton> 
            </EditItemTemplate> 
           </asp:TemplateField> 
          </Columns> 
          <HeaderStyle CssClass="headerclass" /> 
         </asp:GridView> 

ответ

1

Попробуйте использовать поле Command. Он также автоматически генерирует кнопки «Обновить» и «Отмена». Соответствуйте соответствующим событиям.

Код ниже

ASPX

<asp:GridView ID="GridViewTopics" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" 
    GridLines="Horizontal" OnRowEditing="GridViewTopics_RowEditing" CssClass="gridstyle" OnRowCancelingEdit="GridViewTopics_RowCancelingEdit" OnRowUpdating="GridViewTopics_RowUpdating" 
    Style="margin-left: 30px;" Width="230px"> 
    <Columns> 
     <asp:TemplateField HeaderText="Topics"> 
      <ItemTemplate> 
       <asp:Label ID="LabelTopicName" runat="server" Text='<%# Eval("Name") %>'></asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBoxEditTopicName" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox> 
      </EditItemTemplate> 
     </asp:TemplateField> 
     <asp:CommandField ButtonType="Link" ShowEditButton="true"/> 
    </Columns> 
    <HeaderStyle CssClass="headerclass" /> 
</asp:GridView> 

C#

protected void Page_Load(object sender, System.EventArgs e) 
{ 
if (!Page.IsPostBack) { 
    GridViewTopics.DataSource = GetSomeSampleData(); 
    GridViewTopics.DataBind(); 
} 
} 
private DataTable GetSomeSampleData() 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Name"); 
    dt.Columns.Add("Id"); 
    for (index = 1; index <= 10; index++) { 
     DataRow dr = dt.NewRow(); 
     dr("Id") = index; 
     dr("Name") = "SomeName" + index.ToString(); 
     dt.Rows.Add(dr); 
    } 
    return dt; 
} 

protected void GridViewTopics_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridViewTopics.DataSource = GetSomeSampleData(); 
    GridViewTopics.EditIndex = e.NewEditIndex; 
    GridViewTopics.DataBind(); 
} 
protected void GridViewTopics_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
{ 
//Handle accordingly 
} 
protected void GridViewTopics_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
//Handle accordingly 
} 
+0

Если я не обеспечивают метод RowEditing(). будет ли это работать? – spiral

+0

№. Без редактирования строк вы столкнулись бы дважды с проблемами. http://stackoverflow.com/questions/5433776/gridview-edit-click-twice-problems. – imAbhi

+0

Отлично! Люби это! – spiral

Смежные вопросы