ASP.NET (C#)动态添加控键
来源:互联网 发布:淘宝茶叶店铺前十 编辑:程序博客网 时间:2024/06/01 07:38
private void Page_Load(object sender, System.EventArgs e)
{
if(Page.IsPostBack)
{
if(ViewState["IsLoadTextBox"]!=null)
{
Add();
}
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
if(ViewState["IsLoadTextBox"]==null)
{
Add();
ViewState["IsLoadTextBox"]=1;
}
}
private void Add()
{
TableRow r = new TableRow();
TableCell c=new TableCell();
HtmlInputFile t=new HtmlInputFile();
t.ID="tbfile";
c.Controls.Add(t);
r.Cells.Add(c);
this.Table1.Rows.Add(r);
}
}
//====================================
//动态创建控件的最佳时机OnInit
//====================================
用例子说明怎样动态创建控件.
没有多写注释,有问题的请问.
希望对你
<%@ Page Language=C# %>
<SCRIPT runat="server">
public class MyControl : Control , INamingContainer
{
Button btn1;
HyperLink link1;
LinkButton btn2;
HyperLink link2;
override protected void CreateChildControls()
{
CreateControlsByType();
}
protected void CreateControlsByType()
{
object o=ViewState["type"];
int t=o==null?1:(int)o;//默认是方案1
if(t==1)
{
btn1=new Button();
btn1.Text="切换到方案2";
btn1.Click+=new EventHandler(btn1_Click);
link1=new HyperLink();
link1.NavigateUrl="http://www.
link1.Text="Link1";
Controls.Add(new LiteralControl("<table border=1><tr><td>"));
Controls.Add(btn1);
Controls.Add(new LiteralControl("</td><td>"));
Controls.Add(link1);
Controls.Add(new LiteralControl("</td></tr></table>"));
}
else//方案2
{
btn2=new LinkButton();
btn2.Text="切换到方案1";
btn2.Click+=new EventHandler(btn2_Click);
link2=new HyperLink();
link2=new HyperLink();
link2.NavigateUrl="http://www.microsoft.com";
link2.Text="Link2";
Controls.Add(new LiteralControl("<table border=1><tr><td>"));
Controls.Add(btn2);
Controls.Add(new LiteralControl("</td><td>"));
Controls.Add(link2);
Controls.Add(new LiteralControl("</td></tr></table>"));
}
}
void EnsureRecreateControls()
{
if(ChildControlsCreated)
{
Controls.Clear();
CreateControlsByType();
}
else
{
EnsureChildControls();
}
}
void btn1_Click(object sender,EventArgs args)
{
ViewState["type"]=2;
EnsureRecreateControls();
link2.Text="已经切换为2方案了";
}
void btn2_Click(object sender,EventArgs args)
{
ViewState["type"]=1;
EnsureRecreateControls();
link1.Text="已经切换为1方案了";
}
}
override protected void OnInit(EventArgs args)
{
holder1.Controls.Add(new MyControl());
base.OnInit(args);
}
</SCRIPT>
<html>
<head>
<title>Sample By Lostinet</title>
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<form id="SampleForm" method="post" runat="server">
<asp:PlaceHolder Runat=server ID=holder1>
</asp:PlaceHolder>
<br/>
<asp:Button Runat=server Text="在控件之外进行回发"></asp:Button>
</form>
</body>
</html>
- ASP.NET (C#)动态添加控键
- ASP.NET 向网页中动态添加客户端脚本(C#)
- ASP.net 动态table添加
- asp.net TreeView动态添加
- asp.net 动态添加控件
- ASP.NET动态添加控件
- asp.net动态添加Meta(author、description、keywords)
- asp.net 动态添加多附件上传.
- Asp.net中动态添加删除文本框
- ASP.net动态添加head标签
- asp.net 动态添加多附件上传
- ASP.net动态添加head标签
- asp.net 动态添加多附件上传.
- asp.net为控件动态添加事件
- ASP.NET 后台动态添加控件checkbox
- asp.net动态添加页面元素
- asp.net为控件动态添加事件
- asp.net动态添加图片水印
- DataGrid导出excel和word的例子
- IIS安装配置中的问题
- 异常处理随笔
- JAXB实现xml与java对象的
- 直面IT业界众多挑战 英特尔启动商务博锐
- ASP.NET (C#)动态添加控键
- 十二星座八月运势详解
- 用javascript动态调整iframe高度
- xstream
- Exchange Server 2003 Message Security Guide
- Windows Mobile 05 系统数据库卷
- CVS使用手册
- 编辑和运行.NET应用程序
- 一位浙大教授的惊人言论