动态生成的控件如何在前台做验证
做个项目,关于事务管理的,对于事物阶段,想做成动态的,用户可以根据自己的需要自己决定事务阶段分为几段。不过由于是动态生成的控件,每一次提交数据后,如果数据有错误,返回后,动态生成的控件都会消失。有没有什么方法,可以在提交数据之前先对这些动态生成的控件中的内容进行验证,通过后在提交数据,不通过只是提示,也不刷新页面?
程序代码:<%@ 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");
}
}
