<form><input name=mm>
<input type=submit onclick="if(mm.value>1000)return confirm('select')">
</form>

解决方案 »

  1.   

    回 meizz(梅花雪) :
    如果是在DataGrid里的输入框里的值求和,然后再判断呢?这个怎么取呢?
    所以肯定不能在button上加onclick事件...
      

  2.   

    那你就把这个判断放在form里的onsubmit事件里吧:
    <form runat=server onsubmit="return mm(this)"><script>
    function mm(e)
    {
      //其它的判断你自己写
      return confirm('select');
    }
    </script>
      

  3.   

    如果我选择“确定”,怎样继续进行C#的操作呢?
    因为我肯定要在BUTTON的CLICK事件里用C#写方法去判断DATAGRID里的TEXTBOX的总和是否大于1000,
    如果大于,才要弹出CONFIRM对话框...可是我不知道按了“确定”之后该如何继续C#的方法:(
      

  4.   

    支持 meizz(梅花雪) ( )
    在 form 里写好了
      

  5.   

    你那个save按钮是服务器端的吧,在
    if(!this.Page.IsPostBack)
    {
      this.save.Attributes.add("onclick","return check_data()");
    }
      

  6.   

    PPLUNCLE(明年去流浪,谁跟我一起...) :
    这个我也试过,可是不知道怎样取得DATAGRID里的TEXTBOX的名字...
      

  7.   

    this.save.Attributes.add("onclick","if confirm('是否保存') ");
    就可以了 相信你已经有autupostback了
      

  8.   

    哦 
    你这100分还不好赚哦...
    <script>
    function document.onclick()
    {
    el=event.srcElement;
    if(el.name=="save")
    if (confirm('是否保存'))
      __doPostback(null,null);//好象是这么写哈 忘记了 反正你dopostback就对了传空参数
    }
      

  9.   

    关键是怎么取得DataGrid中的每一行的TextBox里的值...
      

  10.   

    foreach(DataGridItem ii in DataGrid1.Items)
    { string TextValue = ((type)ii.FindControl("???")).Text;}
      

  11.   

    我说的是在javascript里取DataGrid中的每一行的TextBox里的值...
    谢谢关注!
      

  12.   

    你是要对datagrid里面数据的有效性进行验证吗?
    我是说对DataGrid里面的textbox的数据进行有效性验证吧?
      

  13.   

    不是对数据有效性进行验证,这个asp.net有控件可以验证的。
    而是要在按下“save”按钮时比较DataGrid里的所有TextBox里的数据之和与给定的一个最大值。
    如果数值之和大于这个最大值,就要弹出确认窗口。
    现在我不知道如何去取得DataGrid中的每一行的TextBox里的值。
      

  14.   

    Page_Load里加:
    this.save.Attributes.add("onclick","return check_data()");
    如果确认了执行save的事件,没的话,什么都不执行
      

  15.   

    上面的错了,应该是
    save的id号.Attributes.add("onclick","return check_data()");
      

  16.   

    Page_Load()
    {
       BtnSave.Attributes["onclick"]="return check_data()";
    }
    .aspx
    <script>
    function check_data()
    {
      if(num>1000)
          return confirm("save?");
      else
          return true;
    }
    </script>
      

  17.   

    因为textbox放到datagrid里面,经过编译以后,其ID会变化,但是还是有一定规律的
    比如下面的模板列:
    <asp:TemplateColumn HeaderText="数 量">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    <ItemTemplate>
    <asp:TextBox id=SL Text='<%# DataBinder.Eval(Container.DataItem,"SL") %>' Width="70px" CssClass="tabletxt" MaxLength="10" Runat="server" EnableViewState="False">
    </asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>经过编译以后,最终显示在页面上的html就会是下面的形式<input name="WL_WZBM:_ctl3:SL" type="text" value="50" maxlength="10" id="WL_WZBM__ctl3_SL" class="tabletxt" style="width:70px;" />
    <input name="WL_WZBM:_ctl4:SL" type="text" value="50" maxlength="10" id="WL_WZBM__ctl4_SL" class="tabletxt" style="width:70px;" />我现在要验证其是不是数字,可以采用下面的js验证:
    funtion Check_Data()
    {
     var reg=/^([1-9]*[0-9]*|0)$/;                  //定义验证整型数据的正则表达式。
      //遍历页面上所有HTML对象
      for(var i=0;i < document.all.length;i++)
      {
       //首先确定要验证的是text
       if(document.all[i].type == "text")
       {
        var T_ID = document.all[i].id;          //得到text的ID
        var T_value = document.all[i].value;    //得到text的值
        //因为模板列SL生成的html的text的ID后面都是"_SL",所以我就判断所有文本框的ID最后三个字符为"_SL"的文本框的值
        if(T_ID.substring(T_ID.length-3,T_ID.length)=="_SL" && T_value.length == 0)
        {
          alert("数据提交失败:您必须为每类物资填写到货数量!");
          document.all[i].focus();     //使出错的文本框中的值处于被选中状态
          return false; 
        }
        if(T_ID.substring(T_ID.length-3,T_ID.length)=="_SL" && && reg.test(T_value)==false)
        {
          alert("数据提交失败:到货数量输入不符合规范!");
          document.all[i].select();     //使出错的文本框中的值处于被选中状态
          return false; 
        }
        //其他文本框验证
        return true;
       }
      }
    }