我把datagrid作为输入控件,我想改变单元格的值同时,将单元格中的数据和其他数据进行相加,但是,我在TextBox_TextChanged,想读取编辑后的值可确是空?为什么?如果,我将鼠标移到其他单元格内时,这是刚才的单元格的值才是显示的值!

解决方案 »

  1.   

    这个情况我一般用TextChanging的说
      

  2.   

    例如:直接在datagrid中的控件(比如TextBox)的行中写onchange事件<asp:TextBox ID="txtProductId"  Runat="server" Width="98%" onchange="CheckNo(<%# DataBinder.Eval(Container, "ItemIndex")+1 %>)"/>//这里可能有问题,你自己仔细看下,单双引号改变下function CheckNo(rowno)
    {
    var sRowCount = Form1.txtRowCount.value;
    var dRowCount = parseInt(sRowCount);
    var s_repid1 = "Form1.DataGrid1__ctl"+rowno+"_";
    var txtIDCardNo=eval(s_repid1+"txtIDCardNo");
    var strIDCardNo = txtIDCardNo.value;
    var p=0,n=0;
    p = rowno - 1;
    if(strIDCardNo != "")
    {
    for (i=2;i<dRowCount+2;i++)
    {
    if(i != rowno)
    {
    n = i - 1
    var s_repid2 = "Form1.DataGrid1__ctl"+i+"_";
    var txtIDCardNo2=eval(s_repid2+"txtIDCardNo");if(txtIDCardNo2.value !="")
    {if(strIDCardNo == txtIDCardNo2.value)
    {window.alert("第"+n+"行和第"+p+"行ID号重复!!!");
    txtIDCardNo.value="";
    txtIDCardNo.focus();
    return false;
    }
    }}
    }
    }
    return true;
    }
      

  3.   

    因为你编辑后已经变为Label了
    所以你就应该读取Label的值
      

  4.   

    winform的情况,如何读取label的值?怎么写?如果我将datagrid的datasource,dv=(dataview)datagrid.datasource;这时,如何读取?谢谢!
      

  5.   

    可能我说的不清楚,我用的是winform,我在datagrid控件中的tablestyle中加入了aColumnTextColumn.TextBox.TextChanged+=new EventHandler(TextBox_TextChanged)事件,然后当datagrid的单元格中数据发生,我将改变的数据读出,比如我输入5,程序如
    private void TextBox_TextChanged(object sender, EventArgs e)
    {
    string str=((TextBox)sender).Text;
    }
    但是,读出的值为空,没有读新的值!为什么?请指教!谢谢!
      

  6.   

    这个cell到ColumnTextColumn.TextBox好像要datagrid.update()一下才可以把cell的值传到对应的textbox上,你试试。