实在是郁闷,搞了好半天才搞出来,原来,就差在Page_Load里面没加上 If (Not Page.IsPostBack) Then
后台代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If (Not Page.IsPostBack) Then DataBind() End If End Sub Protected Sub gvBS_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvCompany.RowUpdating Dim cID As String Dim cName As String Dim r As Integer r = e.RowIndex cID = CType(gvBS.Rows(r).Cells(0).FindControl("lblID"), Label).Text cName = CType(gvBS.Rows(r).Cells(1).FindControl("txtName"), TextBox).Text End Sub
前台代码:
<asp:GridView runat="server" AutoGenerateColumns="False" > <Columns> <asp:TemplateField HeaderText="ID"> <EditItemTemplate> <asp:Label ID="lblID" runat="server" Text='<%# Eval("id") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblID2" runat="server" Text='<%# Bind("id") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="名称"> <EditItemTemplate> <asp:TextBox ID="txtName" runat="server" Text='<%# Bind("name") %>' MaxLength="50"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblName" runat="server" Text='<%# Bind("name") %>' ></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>