为什么我在datagrid控件中删除一行,需要点2次删除按钮???????????
我用datagrid控件实现编辑和删除,但是在删除的时候每次都要点2次删除件,要不就要更新,才可以实现删除功能.
大概的代码如下
SqlCommand cmddel=new SqlCommand("delete from worker where id=@id",sqlconnection1);
Sqlparameter par1=new Sqlparameter("@id",SqlDbType.INT);
par1.value=datagrid1.Datakeys[e.Items.Itemindex];
cmddel.Sqlparameter.add(par1);
cmddel.connection.open();
cmddel.excutenonarycmddel.connection.close();
datagrid1.edititemindex=-1;
sqladapter1.fill(dataset1);
datagrid.databind();可能有些单词不对,是我记不清楚了,但是在机器上是正确的,不影响运行.
我只是想知道根据这样的代码为什么我在datagrid控件中删除一行,需要点2次删除按钮.谢谢大家了

解决方案 »

  1.   

    我把事件放在datagrid1.Deletecommand()事件里了
    是不是该放在itemcommand事件里面
      

  2.   

    page_load事件中绑定数据有没有判断IsPostBack?
      

  3.   

    如何在绑定一次阿,请给出代码吧
    我的page_load()中是这样写的
    page_load()
    {sqlsqladapter1.fill(dataset1);
    if(!ispostback)
    datagrid1.databind();
    }
    这样对吗
    不对的话请给出代码,谢谢了,搞明白后立即结账
      

  4.   

    楼主,是这样的
    你在删除后,要重新bind一下dataGrid!这样的问题是新人常犯的!!
    你找找以前的贴子N个人问过的
    你的代码没给全,你发全了,给你改一下
      

  5.   

    删除后需重新绑定,只需把你第一次绑定datagride时候的代码再执行一遍即可了:)
      

  6.   

    比如把绑定的代码写在
    if(!Page.IsPostBack)
    {
    BindGrid();
    }方法中在删除代码后加入
    BindGrid();
      

  7.   

    page_load()
    {sqlsqladapter1.fill(dataset1);
    if(!ispostback)
    datagrid1.databind();
    }
    SqlCommand cmddel=new SqlCommand("delete from worker where id=@id",sqlconnection1);
    Sqlparameter par1=new Sqlparameter("@id",SqlDbType.INT);
    par1.value=datagrid1.Datakeys[e.Items.Itemindex];
    cmddel.Sqlparameter.add(par1);
    cmddel.connection.open();
    cmddel.excutenonarycmddel.connection.close();
    datagrid1.edititemindex=-1;
    sqladapter1.fill(dataset1);
    datagrid.databind();
    这就是关于删除的全部代码 我的sqlsqladapter1都是用控件定义的
    请帮我改一下吧