<script language=C# runat=server> int Count { get { object o = ViewState["Count"]; if (o==null) return 0; return (int)ViewState["Count"]; } set { ViewState["Count"] = value; } }DropDownList AddDDL() { TableRow tr = new TableRow(); TableCell tc = new TableCell(); DropDownList ddl = new DropDownList(); tc.Controls.Add(ddl); tr.Cells.Add(tc); tbl.Rows.Add(tr); return ddl; }void PopulateDLL(DropDownList ddl) { for (int i=1; i <=10; i++) ddl.Items.Add(i.ToString()); } void Page_Load(Object sender, EventArgs e) { for (int i=0; i < Count; i++) { AddDDL(); } }void Add(Object sender, EventArgs e) { DropDownList ddl= AddDDL(); PopulateDLL(ddl); Count++; }</script><form runat=server id=form1> <asp:Table id=tbl runat=server /> <asp:Button id=btn runat=server text=add Onclick="Add" /> <asp:Button id=btn2 runat=server text=submit/> </form>
TableCell tc = new TableCell(); DropDownList ddl = new DropDownList(); tc.Controls.Add(ddl);
在页面上拖一个PlaceHolder 代码如下: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ddl As New Web.UI.WebControls.DropDownList Me.PlaceHolder1.Controls.Add(ddl) End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ddl As New Web.UI.WebControls.DropDownList Dim newlistitem As New WebControls.ListItem newlistitem.Text = "aa" newlistitem.Value = "aa" ddl.Items.Add(newlistitem) Me.PlaceHolder1.Controls.Add(ddl) End Sub
Sub Page_Load() Dim i as Integer For i=0 to 4 Dim myUserControl as Control myUserControl = Page.LoadControl(“foo.ascx”) PlaceHolder1.Controls.Add(myUserControl) PlaceHolder1.Controls.Add(New LiteralControl(“<br>”)) Next i End Sub
int Count
{
get
{
object o = ViewState["Count"];
if (o==null)
return 0;
return (int)ViewState["Count"];
}
set
{
ViewState["Count"] = value;
}
}DropDownList AddDDL()
{
TableRow tr = new TableRow();
TableCell tc = new TableCell(); DropDownList ddl = new DropDownList();
tc.Controls.Add(ddl);
tr.Cells.Add(tc);
tbl.Rows.Add(tr); return ddl;
}void PopulateDLL(DropDownList ddl)
{
for (int i=1; i <=10; i++)
ddl.Items.Add(i.ToString());
}
void Page_Load(Object sender, EventArgs e)
{
for (int i=0; i < Count; i++)
{
AddDDL();
}
}void Add(Object sender, EventArgs e)
{
DropDownList ddl= AddDDL();
PopulateDLL(ddl);
Count++;
}</script><form runat=server id=form1>
<asp:Table id=tbl runat=server />
<asp:Button id=btn runat=server text=add Onclick="Add" />
<asp:Button id=btn2 runat=server text=submit/>
</form>
tc.Controls.Add(ddl);
代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ddl As New Web.UI.WebControls.DropDownList
Me.PlaceHolder1.Controls.Add(ddl)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ddl As New Web.UI.WebControls.DropDownList
Dim newlistitem As New WebControls.ListItem
newlistitem.Text = "aa"
newlistitem.Value = "aa"
ddl.Items.Add(newlistitem)
Me.PlaceHolder1.Controls.Add(ddl)
End Sub
Dim i as Integer
For i=0 to 4
Dim myUserControl as Control
myUserControl = Page.LoadControl(“foo.ascx”)
PlaceHolder1.Controls.Add(myUserControl)
PlaceHolder1.Controls.Add(New LiteralControl(“<br>”))
Next i
End Sub
{
if(this.Request.Params["leftPane"] != null)
{
System.Web.UI.UserControl myLeftPane = (System.Web.UI.UserControl)Page.LoadControl(this.Request.Params["leftPane"].ToString());
myLeftPane.ID = "myLeftPane";
this.leftPane.Controls.Add(myLeftPane);
this.leftPane.Visible=true;
}
if(this.Request.Params["contentPane"] != null)
{
this.contentPane.Controls.Add((System.Web.UI.UserControl)Page.LoadControl(this.Request.Params["contentPane"].ToString()));
this.contentPane.Visible = true;
}
if(this.Request.Params["rightPane"] != null)
{
this.rightPane.Controls.Add((System.Web.UI.UserControl)Page.LoadControl(this.Request.Params["rightPane"].ToString()));
this.rightPane.Visible = true;
}
if(this.Request.Params["contentPane"] == null)
{
this.leftPane.Controls.Add((System.Web.UI.UserControl)Page.LoadControl("~/components/left1.ascx"));
this.leftPane.Visible = true;
this.contentPane.Controls.Add((System.Web.UI.UserControl)Page.LoadControl("~/components/center1.ascx"));
this.contentPane.Visible = true;
}
}
然后把this.loadmyComponents();加入
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
this.loadmyComponents();
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
里面可以实现页面初试化的动态绑定用户控件
可以在循环中写:
TableCell tc = new TableCell();
DropDownList ddl = new DropDownList();
tc.Controls.Add(ddl);