如题。(最好别用捕捉鼠标事件的方法做。)

解决方案 »

  1.   

    最好别用捕捉鼠标事件的方法做。
    ==>那要怎么样呢?DataGird已经提供了修改的功能,为什么不用呢
      

  2.   

    http://www.cnblogs.com/lovecherry/archive/2005/05/15/155831.html
      

  3.   

    cpp2017(幕白兄)
    --〉DataGird已经提供了修改的功能,为什么不用呢
    我不太清楚是什么样的方法,可以告诉我是什么方法吗?我想要的是LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 所说的那种单击和双击更新DataGrid中的数据得这种效果,但是又不想将DataGird需要进行编辑的项用文本框来代替。主要是因为如果我要在DataGird显示很多条数据的时候,如果用文本框会影响速度。
      

  4.   

    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DataGrid1.EditItemIndex = e.Item.ItemIndex;
    DataGrid1.DataBind();
    }private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string s1=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("qx")).Text.Trim();
    string s2=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("hx")).Text.Trim();
    string s3=((System.Web.UI.WebControls.TextBox)e.Item.FindControl("dy")).Text.Trim();
    string sid=DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();

    }
                
    string s="update yys_xl SET s_q ='"+s1+"',s_h ='"+s2+"',s_dy ='"+s3+"' where id = "+sid;
    db.ExcSQL(s,1);
    DataGrid1.EditItemIndex = -1;
    DataGrid1.DataBind();
    Response.Redirect("adtujst.aspx?id="+ids);
    }以上是我自己的一个例子,分别写了edit和update两个事件的代码,不知对你是否有帮助
      

  5.   

    谢谢 fphuang(人在哈尔滨@net)
    你的代码对我没有大的用处,我用DataGrid只是作为一个数据展示的控件来用。所以我很需要DataGrid在页面上面可以编辑,例如很多第三方控件那样,或者像DELPHI的数据显示控件那样。
      

  6.   

    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    { this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
    BindData();

    }
    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string strStudentID=e.Item.Cells[0].Text; //处于非编辑状态
    string strName=((TextBox)(e.Item.Cells[1].Controls[0])).Text;//处于编辑状态
    string strbirthday=((TextBox)(e.Item.Cells[2].Controls[0])).Text;
    string strsex=((TextBox)(e.Item.Cells[3].Controls[0])).Text;
    string strSQL_updata="update test_datagrid set name="+"'"+strName+"',"+"birthday="+"'"+strbirthday+"',"+"sex="+"'"+strsex+"'"+" where StudentID="+int.Parse(strStudentID).ToString();
    ExecuteSql(strSQL_updata);
    this.DataGrid1.EditItemIndex=-1;
    BindData();
    }
      

  7.   

    右键点击dg然后添加一个按纽列
    然后编辑按纽列的select事件
    不知道你是不是想要这样的效果
    说的不对不要鄙视~
      

  8.   

    没事,大家一起讨论。
    我再说清楚点好了。
    下面是我想要得到的效果。
    我从数据库中取得的数据显示在Web页面的DataGrid中,这个时候,我将鼠标移动到DataGrid上面,例如这个时候我鼠标的位置在第1行第3列,我现在单击鼠标,然后DataGrid中第1行第3列的那项就处于编辑状态。这其中要求第1行第3列不能为文本框或者其他的控件。
      

  9.   

    你看infrag……名字复杂忘记鸟,这个里面的webgrid行不?
      

  10.   

    这个东西还是用javascript的经典——Bindows作比较好。我把它的OlapGrid剥了出来,挺好用的。