注册 登录
编程论坛 ASP.NET技术论坛

动态生成的控件如何在前台做验证

Sephirose 发布于 2015-03-10 09:47, 1686 次点击
做个项目,关于事务管理的,对于事物阶段,想做成动态的,用户可以根据自己的需要自己决定事务阶段分为几段。不过由于是动态生成的控件,每一次提交数据后,如果数据有错误,返回后,动态生成的控件都会消失。有没有什么方法,可以在提交数据之前先对这些动态生成的控件中的内容进行验证,通过后在提交数据,不通过只是提示,也不刷新页面?
2 回复
#2
yms1232015-03-23 07:39
那你要学习Ajax和JQuery
#3
不说也罢2015-03-31 19:49
给你一个小例子,然后你自己测试下再慢慢琢磨:
vs 2008:
前端页面代码:
程序代码:
<%@ 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");
    }
}

1