GridView常见问题及解决办法

1.GirdView自动显示编辑模式,设置AutoGenerateEditButton="true"

2.GirdView编辑,更新,取消方法

protected void Edit_Click(object sender, GridViewEditEventArgs e)
{
this.gvData.EditIndex = e.NewEditIndex;
DateBind();
}

protected void gvData_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
TextBox tb1 = (TextBox)gvData.Rows[e.RowIndex].FindControl("txtUserCount");
string count = tb1.Text;
gvData.EditIndex = -1;

//重新绑定数据,必须重新绑
DateBind();
}

protected void gvData_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvData.EditIndex = -1;
DateBind();
}

设计状态代码:

<asp:GridView RowStyle-Wrap="false" runat="server" ShowHeader="true" OnRowEditing="Edit_Click"
AutoGenerateColumns="False" ID="gvData" Width="98%"
GridLines="Both" BorderWidth="1px" EnableModelValidation="false"
CellPadding="4" AutoGenerateEditButton="true"
onrowcancelingedit="gvData_RowCancelingEdit" onrowupdating="gvData_RowUpdating">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<Columns>
<asp:TemplateField HeaderText="医院名称">
<ItemTemplate>
<asp:Label ID="lblHospitalName" runat="server" Text='<%# Eval("HospitalName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="产品型号">
<ItemTemplate>
<asp:Label ID="lblproductType" runat="server" Text='<%# Eval("productType") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="使用数量">
<ItemTemplate>
<asp:Label runat="server" ID="lblUserCount" Text='<%#Eval("Count") %>'></asp:Label> </ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtUserCount" runat="server" Text='<%#Bind("Count") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="注备">
<ItemTemplate>
<asp:Label runat="server" ID="lblStorageRemark" Text='<%#Eval("StorageRemark") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtStorageRemark" runat="server" Text='<%#Bind("StorageRemark") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>

<RowStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle"></RowStyle>
<PagerStyle BackColor="#d22238" ForeColor="White" HorizontalAlign="Center" Font-Bold="True" />
<HeaderStyle BackColor="#E5E5E5" Font-Bold="True"/>
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

3.gridview编辑列时要点击两次才能触发事件

因为你点击第一次的时候系统又去查询,把查询的结果放在了ds里面而没有呈现在页面上来!当一第二次点的时候才是取的ds里面有效的数据,重新绑定数据就没事了,一次点击就成功了
原文地址:https://www.cnblogs.com/GreenGrass/p/2663225.html