我用DATAGRID绑定一个数据源显示一个数据表格,而这个GRID还具备一个模板列,放TEXTBOX控件,这样使得每一行多出一个文本框 , 现在要对每一行的这个文本框写一点数据,最后通过点击一个“BUTTON”将整个GRID中数据再存入某个新的数据源。 现在的问题就是:这个文本框中的数据格式是有规定的,不能随便输的,我想写一段客户脚本,使得在点最后的“BUTTON”的时候,这个脚本能先执行格式验证,对这一列中所有文本框中的输入内容执行验证,再决定是否保存。 我觉得,这些文本框都是动态生成的,又没有固定ID,如何用 javascript 写客户端脚本,而我就实在想不出解决办法了,这个问题有点急,所以非常希望各位热心的朋友给予指点和帮助!!一些比较广泛的思路都可以!比如说,象碰到我这样的问题,我这种解决方案是否可行,还是干脆有什么其他好的方法,希望大家能集思广益,出出主意!

解决方案 »

  1.   

    控件中有个clientId表示客户端id
      

  2.   

    这些文本框的客户端ID是有规律的,你通过ie->查看源文件 就可以看到
      

  3.   

    做个函数:
    private void selectAll()
      {
       System.Web.UI.WebControls.TextBox txt ;
       foreach(DataGridItem oDataGridItem in dgMain.Items)
        {
         txt = (TextBox)oDataGridItem.FindControl("txt");
         if(txt.text!=XXX)
          {....}
        }
    在按钮事件先调用这个函数    }
      

  4.   

    首先,在DataGrid中放的TextBox控件一定有一个ID,例如说tbContext,
    在回发到客户端的时候,虽然不能具体确定ID,但是ID一定包含tbContext,
    所以可以用下面的方法来确定客户端的控件ID
    ii=document.all.length;
    var s="";
      for (i=0;i<ii;i++)
      {
          var ss=document.all(i).id;
          if (ss.indexOf("tbStarttime",1)>0)
      {
      s=ss;
      break;
      }
    }
    这是我用的办法,不知道有没有更好的方法。
    如果没问题,多加分吧
      

  5.   

    前面写的有点问题,应该是这样:
    DataGrid中放的TextBox的ID:tbContext
    ii=document.all.length;
    var s="";
      for (i=0;i<ii;i++)
      {
          var ss=document.all(i).id;
          if (ss.indexOf("tbContext",1)>0)
      {
      s=ss;
      break;
      }
    }
    s即为客户端的ID