2014-10-18 77 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

你在gridview中使用'OnRowUpdating'事件http://www.webblogsforyou.com/gridview-inline-add-insert-edit-update-delete-data-in-asp-net-c-vb/像这样? – 2014-10-19 04:45:37

+0

是的,我有OnRowUpdating事件 – user966398 2014-10-20 01:37:27

回答

0

确保在<%#Eval("Role") %>指定OnRowUpdating="gv_RowUpdating"事件,改变字段名,看下面的例子:

.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 = Roles.GetAllRoles();所以它给出了一个错误'System.String'不包含名称为'Role'的属性。 – user966398 2014-10-20 21:07:39

+0

这是因为从“Roles.GetAllRoles();”返回的结果集中找不到“角色”字段。确保结果集中返回“角色”字段并将其作为列表传递。 – 2014-10-21 04:07:00