我在GridView中添加了一个模板列,在ItemTemplet中放入了一个TextBox,能显示绑定列的值,这个功能已经实现了,如果更改TextBox上的值,我想取到变化以后的值应该怎么做?先说说我试过的方法,但是好像不成功:
int Quantity; //记录文本框的值
for(int i=0; i<GridView.Rows.Count; i++)
{
    TextBox _textbox=(TextBox)GridView.Rows[i].FindControl("TextBox_ID");
    Quantity=_textbox.Text;
    try
    {
         如果文本框值发生变化想做的操作
    }
}
经调试,Quantity取到的都是刚开始绑定到TextBox上的值,在TextBox上更改后的值取不到,请问高手,这段代码有没问题?如果有可行的办法,望给出关键代码,谢谢!

解决方案 »

  1.   

    _textbox应该有个改变文本的事件.
      

  2.   

    更新一条记录不是这样写的,告诉你方法
    1datagrid 中多一个模板列,里面是一个按钮或别的控件(button1),CommandName属性为Update
    2在后台邦定datagrid的时候通过Atrributes的属性向button1添加脚本,如
        this.button1.Atrributes.Add("onclick","javascript:return do_add('"+((TextBox)e.Item.FindControl("TextBox1")).ClientID+"')");
    3 前台加脚本
    function do_add(id)
    {
       H_1.value=document.getElemnetById(id).value;//H_1为html隐藏字段,作服务器控件运行}
    4 到事件datagrid_ItemCommand事件里加
       if (e.CommandName=="Update")
       {    //更新操作,怎么取值我不用说了吧
      //最后再有一个邦定datagird的一句话}
      

  3.   

    更新后 再绑定private void DGKey_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
      ……
      DGKey.EditItemIndex=-1;
       ……
       BindKey();
    }
      

  4.   

    在page_load方法中的绑定是不上没有放在
    if(!IsPostBack)
    {
       databind();
    }