现在我的Repeater内每一行里有3个textbox控件   我想问一下   怎么才能实现利用textchange事件使第3个控件得到前2个控件之和困难在于不好确定是哪行谢谢各位帮助了

解决方案 »

  1.   

    给你个思路,建议最好不要使用textchanged后台事件,这样每次输入都会产生刷新是让人很不爽的,当然使用ajax例外。1 在repeater的ondatabound事件里面进行js绑定2 绑定类似如下代码(大小写和客户端事件名称你自己注意核对准确)
      TextBox text1 = e.Item.Findcontrol('text1');
      TextBox text2 = 类似同上;
      TextBox text3 = 类似同上;
      text1.attributes.add("onchange","caculate('"+text1.clientid+"','"+text2.clientid+"','"+text3.clientid+"');");
      text2.attributes.add("onchange","caculate('"+text1.clientid+"','"+text2.clientid+"','"+text3.clientid+"');");3 前台添加如下js方法
      提示:1 .textbox1,2的值获取后可能需要处理一下的情况不仅仅是为空,你自己要多测试下
            2 .累加赋值前最好将tb1value和tb2value转化成数值型!
    caculate(tb1,tb2,tb3)
    {
       var tbcontrol1 = docuement.getElementById(tb1);
       var tbcontrol2 =.....类似上面
       var tbcontrol3 = ....类似上面   var tb1value = tbcontrol1.value;
      var tb2value = tbcontrol2.value;
        
      if(tb1value == "") 
        tb1value = 0;
      if(tb2value == "")
        tb2value =0;
      tbcontrol3.value = tb1value + tb2value;
    }