表:Students
列:stuid、name点击编辑按钮后shtuid列处于不可编辑、name处于可编辑
代码要怎么实现?!
还有是就怎么获取name编辑后的值。最要用VB语言、当然C#也可以

解决方案 »

  1.   

    <ItemTemplate>
    <%# Eval("stuid")%>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="txtname" runat="server" Width="89%" CssClass="inputText" Text='<%# Eval("name") %>' >
    </asp:TextBox> 
    </EditItemTemplate>
      protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
      {
        
      string strId = gv.DataKeys[e.RowIndex].Value.ToString();  string str = ((TextBox)gv.Rows[e.RowIndex].FindControl("txtname")).Text.Trim();
      }
     protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
            {
                this.gv.EditIndex = e.NewEditIndex;
                BindData();
            }
      

  2.   

    C#: 用母版做,shtuid的值用母版来表示,这样就不可编值了。
    获取name:
    protected void GriView_RowUpdating(object sender, GridViewEditEventArgs e)
    {
          这个不用写了因为不用更改它了
          //string strshtuid=GriView.Datakeys[e.RowIndex].Value.ToString();
            string strname=((textBox)GriView.Rows[e.RowIndex].cells[1].Controls[0].Text);
          GriView.EditIndex=-1;
          重新加载数据
    }
      

  3.   

    C#: 用母版做,shtuid的值用母版来表示,这样就不可编值了。
    获取name:
    protected void GriView_RowUpdating(object sender, GridViewEditEventArgs e)
    {
      这个不用写了因为不用更改它了
      //string strshtuid=GriView.Datakeys[e.RowIndex].Value.ToString();
      string strname=((textBox)GriView.Rows[e.RowIndex].cells[1].Controls[0].Text);    这写SQL语句
       
      GriView.EditIndex=-1;
      重新加载数据
    }
      

  4.   

    设置stuid这个列为Readonly=true就可以了
      

  5.   

    设置stuid这个列为Readonly=true就可以了
    然后单击姓名跳转的详细页进行修改
      

  6.   


    不可编辑找到GridView中的那一列,设Readonly为true就可以了,
    编辑列的获取,要在RowUpdating事件中,注意要转换下(因为点编辑后那一列就有个文本输入框,也就是TextBox,你要找到这个列,并在这列中找到这个文本框,再将其转换成TextBox类型,取它的值,就是你编辑时输入的值)