ASPX页面主要代码如:
主要是三个模块列,内容都是TextBox
- <asp:TemplateField HeaderText="下达资金<br/>(万元)">
- <ItemStyle Width="80px" CssClass="gv" Height="25px" HorizontalAlign="Left" VerticalAlign="Middle" />
- <HeaderStyle Width="80px" BackColor="#C8E3F9" CssClass="gv" Font-Bold="False" Font-Size="14pt"
- HorizontalAlign="Center" VerticalAlign="Middle" />
- <ItemTemplate>
- <asp:TextBox Width ="75px" MaxLength="7" ID="txtMoney" Text='<%#Eval("Bankroll")%>' runat="server" > </asp:TextBox>
- </ItemTemplate>
- </asp:TemplateField>
aspx.cs后台代码如下:
- /// <summary>
- /// gridview呈现前激发
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void GVList_PreRender(object sender, EventArgs e)
- {
- ClientScriptManager cs = Page.ClientScript;
- foreach (GridViewRow gvrow in GVList.Rows)
- {
- //找出GridView里的每一个服务端空间
- TextBox txtMoney = (TextBox)gvrow.FindControl("txtMoney");
- TextBox txtToPro = (TextBox)gvrow.FindControl("txtToPro");
- TextBox txtToCity = (TextBox)gvrow.FindControl("txtToCity");
- //将相应的服务端控件的ClientID注册到客户端JavaScript数组
- cs.RegisterArrayDeclaration("grdMoney", String.Concat("'", txtMoney.ClientID, "'"));
- cs.RegisterArrayDeclaration("grdToPro", String.Concat("'", txtToPro.ClientID, "'"));
- cs.RegisterArrayDeclaration("grdToCity", String.Concat("'", txtToCity.ClientID, "'"));
- }
- }
Js里的验证如下:
- for(i=0;i<grdMoney.length;i++)
- {
- //总投资有效性验证
- var fMoney=0,fPro=0,fCity=0;
- var objMoney=document.getElementById(grdMoney[i]);
- //alert(objMoney.value.length);
- if(objMoney.value.toString().length<1||objMoney.value.toString().substring(0,1) == " ")
- {
- alert("第 ["+ [parseInt(i)+1]+ "] 行的总投资不能为空,并且不能以空格开头!");
- objMoney.focus();
- return false;
- }
- else
- {
- var patrn=/^/d+/.?/d*$/;
- if ((!patrn.exec(objMoney.value))||objMoney.value<=0)
- {
- alert("第 ["+ [parseInt(i)+1]+ "] 行的总投资只能为大于0的正数!");
- objMoney.focus();
- return false;
- }
- }
- fMoney = parseFloat(objMoney.value);
- //省直预算有效性验证
- var objToPro=document.getElementById(grdToPro[i]);
- if(objToPro.value.length>0)
- {
- var patrn=/^/d+/.?/d*$/;
- if ((!patrn.exec(objToPro.value))||objToPro.value<=0)
- {
- alert("第 ["+ [parseInt(i)+1]+ "] 行的省直预算只能为大于0的正数!");
- objToPro.focus();
- return false;
- }
- fPro = parseFloat(objToPro.value);
- }
- //设区市预算有效性验证
- var objToCity=document.getElementById(grdToCity[i]);
- if(objToCity.value.length>0)
- {
- var patrn=/^/d+/.?/d*$/;
- if ((!patrn.exec(objToCity.value))||objToCity.value<=0)
- {
- alert("第 ["+ [parseInt(i)+1]+ "] 行的设区市预算只能为大于0的正数!");
- objToCity.focus();
- return false;
- }
- fCity = parseFloat(objToCity.value);
- }
- //总投资和省直预算与设区市预算和的关系有效性验证
- //alert(fMoney+","+fPro+","+fCity);
- if(fMoney<fPro+fCity)
- {
- alert("第 ["+[parseInt(i)+1]+"] 行的省直预算与设区市预算和不能大于总投资"+objMoney.value+"(万元)!");
- return false;
- }
- }
参考图片:
第一张:
第二张
第三张