动态生成的控件如何在前台做验证
做个项目,关于事务管理的,对于事物阶段,想做成动态的,用户可以根据自己的需要自己决定事务阶段分为几段。不过由于是动态生成的控件,每一次提交数据后,如果数据有错误,返回后,动态生成的控件都会消失。有没有什么方法,可以在提交数据之前先对这些动态生成的控件中的内容进行验证,通过后在提交数据,不通过只是提示,也不刷新页面?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%--这里全是VS自动生成的代码--%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www."> <html xmlns="http://www."> <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button btn=new Button();//动态生成一个按钮 btn.Text="点我试试"; btn.Visible =true; TextBox txtBox = new TextBox();//动态生成一个文本框 txtBox.ID = "TextBox1"; form1.Controls.Add(txtBox); form1.Controls.Add(btn); btn.Attributes.Add("onclick", "return ChkValue();");//先校验文本框是否为空值——在客户端校验哦,页面不会post Response.Write("<script type='text/javascript' language='javascript'>function ChkValue(){"+"\n"); Response.Write("var obj= document.getElementById('"+txtBox.ID+"');" + "\n"); Response.Write("if (obj.length==0||obj.value==''){" + "\n"); Response.Write("alert('文本框的值不能为空');" + "\n"); Response.Write("return false;}}</script>" + "\n"); } }