动态生成表单与调用动态生成的控件
来源:互联网 发布:杨幂人品知乎 编辑:程序博客网 时间:2024/05/17 02:29
当态地向页面添加一个新的控件时,该控件并不会在表单回传之间自动保持下来,该控件本身并不被保存到页面的视图状态中。但是,输入到动态生成的表单域中的任何文本都将自动保存到视图状态中。当刷新页面后还是新成同一ID号的控件时,保存在视图状态的值就会自动回到相同ID号的控件中去。
以下是页面代码:有两个Button,一个用来生成动态的TextBox,一个用来计算TextBox中的总值,一个是用来放动态控件的PlaceHolder控件。因为只是用来显示如果调用生的动态控件,所以没有注意程序的除错,以增加代码量。
以下是页面代码:有两个Button,一个用来生成动态的TextBox,一个用来计算TextBox中的总值,一个是用来放动态控件的PlaceHolder控件。因为只是用来显示如果调用生的动态控件,所以没有注意程序的除错,以增加代码量。
<%@ Page language="c#" Codebehind="CreateNewControl.aspx.cs" AutoEventWireup="false" Inherits="TestDAAB.CreateNewControl" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>CreateNewControl</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<P>
<asp:Button id="Button1" runat="server" Text="生成控件"></asp:Button>
<asp:Button id="btnC" runat="server" Text="计算"></asp:Button></P>
<P>
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder></P>
</FONT>
</form>
</body>
</HTML>
以下是程序代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>CreateNewControl</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<P>
<asp:Button id="Button1" runat="server" Text="生成控件"></asp:Button>
<asp:Button id="btnC" runat="server" Text="计算"></asp:Button></P>
<P>
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder></P>
</FONT>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace TestDAAB
{
/**//// <summary>
/// CreateNewControl 的摘要说明。
/// </summary>
public class CreateNewControl : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
protected System.Web.UI.WebControls.Button btnC;
private void Page_Load(object sender, System.EventArgs e)
{
//自动生成刷新页面前的动态控件
if(!this.IsPostBack)
{
ViewState.Add("count",0);
}
else
{
for(int i = 0 ; i < Int32.Parse(ViewState["count"].ToString());i++)
{
this.PlaceHolder1.Controls.Add(new LiteralControl("<p/> TextBox"+i+" :"));
TextBox tb =new TextBox();
tb.ID = "TextBox" + i;
this.PlaceHolder1.Controls.Add(tb);
}
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.btnC.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//生成动态控件的Button
private void Button1_Click(object sender, System.EventArgs e)
{
this.PlaceHolder1.Controls.Add(new LiteralControl("<p/> TextBox"+ViewState["count"].ToString()+" :"));
TextBox tb = new TextBox();
tb.ID = "TextBox"+ViewState["count"].ToString();
this.PlaceHolder1.Controls.Add(tb);
ViewState["count"] = Int32.Parse(ViewState["count"].ToString()) + 1;
}
//计算Button
private void Button2_Click(object sender, System.EventArgs e)
{
int Max =0;
for(int i=0;i<Int32.Parse(ViewState["count"].ToString());i++)
{
Max +=Int32.Parse((this.FindControl("Textbox"+i) as TextBox).Text);
}
Response.Write("总数等于:"+Max);
}
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace TestDAAB
{
/**//// <summary>
/// CreateNewControl 的摘要说明。
/// </summary>
public class CreateNewControl : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
protected System.Web.UI.WebControls.Button btnC;
private void Page_Load(object sender, System.EventArgs e)
{
//自动生成刷新页面前的动态控件
if(!this.IsPostBack)
{
ViewState.Add("count",0);
}
else
{
for(int i = 0 ; i < Int32.Parse(ViewState["count"].ToString());i++)
{
this.PlaceHolder1.Controls.Add(new LiteralControl("<p/> TextBox"+i+" :"));
TextBox tb =new TextBox();
tb.ID = "TextBox" + i;
this.PlaceHolder1.Controls.Add(tb);
}
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.btnC.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//生成动态控件的Button
private void Button1_Click(object sender, System.EventArgs e)
{
this.PlaceHolder1.Controls.Add(new LiteralControl("<p/> TextBox"+ViewState["count"].ToString()+" :"));
TextBox tb = new TextBox();
tb.ID = "TextBox"+ViewState["count"].ToString();
this.PlaceHolder1.Controls.Add(tb);
ViewState["count"] = Int32.Parse(ViewState["count"].ToString()) + 1;
}
//计算Button
private void Button2_Click(object sender, System.EventArgs e)
{
int Max =0;
for(int i=0;i<Int32.Parse(ViewState["count"].ToString());i++)
{
Max +=Int32.Parse((this.FindControl("Textbox"+i) as TextBox).Text);
}
Response.Write("总数等于:"+Max);
}
}
}
- 动态生成表单与调用动态生成的控件
- 复杂表单的动态生成与动态验证
- 复杂表单的动态生成与动态验证
- 动态控件的生成与响应
- 动态控件的生成与响应
- 动态控件的生成与响应
- VS2008 动态库的生成与调用
- 动态链接库的生成与调用
- 动态生成HTML表单
- DWZ生成动态表单
- Jquery动态生成表单
- 动态生成控件
- VB 动态生成控件
- 动态生成控件
- 动态生成自定义控件
- 动态生成控件
- 动态生成控件web
- Android 动态生成控件
- 涂鸦
- NekoHTML读书笔记
- PHP中的Magic Methods
- windows常数所属的类别
- 开始在北京奋斗
- 动态生成表单与调用动态生成的控件
- 我为什么讨厌MFC?
- 服务器的冲动
- 几个代码
- 恶斗北京黑中介
- 真人穿QQ秀里面的衣服
- 01.18潜龙看盘: 股指宽幅震荡,个股继续炒作!
- WinSocket模型的探讨——select模型
- 考试综合症