如果我用SqlDataSource来绑定GridView就什么问题都没有,点编辑那么这一行就处于编辑状态,
但是我不想用 SqlDataSource来绑定 ,就自己手动写代码来绑定。
但是这样一来就出了个怪事情,我点编辑一点反应都没有。
大家帮我看看,是什么原因。
    <asp:GridView ID="GridView1"  Runat="server"
         AutoGenerateEditButton="true" DataKeyNames="au_id"
        AutoGenerateColumns="False" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
        <Columns>
          <asp:BoundField ReadOnly="true" HeaderText="ID" DataField="au_id" />          <asp:CheckBoxField HeaderText="Contract" DataField="contract" />
        </Columns>
      </asp:GridView>
后台代码是这样地 
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection conn=new SqlConnection("Server=(local)\\SQLExpress;Integrated Security=True;Database=pubs;Persist Security Info=True");
        SqlDataAdapter a=new SqlDataAdapter("SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors",conn);
        DataSet d=new DataSet();
        a.Fill(d);
        GridView1.DataSource=d;
        GridView1.DataBind();
    }
GridView1_RowEditing方法里面什么都没有写。

解决方案 »

  1.   

    你要手动书写的话,就应该和datagrid一样来操作,需要绑定模板列了
      

  2.   

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindData();
        }
      

  3.   

    编辑有效状态EditItemIndex = 1;再绑定数据来源,还有你的Page_Load()下面的代码应该写在
    If(!IsPostBack)
    {
       //绑定数据来源
        SqlConnection conn=new SqlConnection("Server=(local)\\SQLExpress;Integrated Security=True;Database=pubs;Persist Security Info=True");
            SqlDataAdapter a=new SqlDataAdapter("SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors",conn);
            DataSet d=new DataSet();
            a.Fill(d);
            GridView1.DataSource=d;
            GridView1.DataBind();}这个里面