2014-10-18 2 views
0

Я привязываю массив к GridView. Ниже приведено поле моего шаблона, и он не запускает RowUpdating при нажатии на обновление.RowUpdating не срабатывает в EditItemTemplate

<asp:TemplateField HeaderText="Role"> 
       <EditItemTemplate> 
        <asp:TextBox runat="server" Text='<%# Container.DataItem.ToString() %>' ID="txtEditRole"></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <%# Container.DataItem.ToString() %> 
       </ItemTemplate> 
      </asp:TemplateField> 

Это произошло после создания поля в TempleteField. Раньше поле было как внизу.

<asp:BoundField DataField="!" HeaderText="Role" /> 
+0

Вы использовали событие OnRowUpdating в gridview http://www.webblogsforyou.com/gridview-inline-add-insert-edit-update-delete-data-in-asp-net-c-vb/ как это ? –

+0

Да, у меня событие OnRowUpdating – user966398

ответ

0

Убедитесь, что вы указали OnRowUpdating="gv_RowUpdating" событие, а также изменить FieldName в <%#Eval("Role") %> см этот пример:

страницу .aspx

<asp:GridView ID="gv" runat="server" DataKeyNames="Id" AutoGenerateColumns="false" OnRowEditing="gv_RowEditing"  
OnRowUpdating="gv_RowUpdating" OnRowCancelingEdit="gv_RowCancelingEdit" OnRowCommand="gv_RowCommand" OnRowDeleting="gv_RowDeleting"> 
<Columns> 
    <asp:TemplateField> 
    <EditItemTemplate> 
     <asp:LinkButton ID="lbtnUpdate" runat="server" CommandName="Update" Text="Update" /> 
     <asp:LinkButton ID="lbtnCancel" runat="server" CommandName="Cancel" Text="Cancel" /> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" Text="Edit" /> 
     <asp:LinkButton ID="lbtnDelete" runat="server" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this record?')" CausesValidation="false" /> 
    </ItemTemplate>  
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Role"> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtEditRole" runat="server" Text='<%#Eval("Role") %>' /> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblRole" runat="server" Text='<%#Eval("Role") %>' /> 
    </ItemTemplate>  
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 

.aspx.cs

protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    //your code here.. 
} 

Чтобы проверить полный артикул, оформление заказа insert, update, delete gridview data example in asp.net.

+0

Это не работает, потому что я установил источник данных, как показано ниже. gridViewRoles.DataSource = Роли. GetAllRoles(); Поэтому он дает ошибку «System.String» не содержит свойства с именем «Роль». – user966398

+0

Это потому, что поле «Роль» не найдено из набора результатов, возвращаемого «Roles.GetAllRoles();». Убедитесь, что поле «Роль» возвращается в наборе результатов и передает его в виде списка. –

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