我们经常使用PlaceHolder或者Panel 作为容器来动态加载控件,使用LiteralControl来装载html。
在页面上拖放一个PlaceHolder控件,添加以下代码可了解这种应用。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
//注册脚本
this.RegisterScript();
//
//动态加载控件
//
Panel panel1 = new Panel();
panel1.Width = new Unit("200px");
//增加一个html下拉框控件
string htmlString = " <SELECT ID="oCar" SIZE="1" onchange="fnChange(this)">"
+ " <OPTION VALUE="1">宝马"
+ "<OPTION VALUE="2">保时捷"
+ "<OPTION VALUE="3" SELECTED>奔驰"
+ "</SELECT>";
panel1.Controls.Add(new LiteralControl(htmlString));
//甚至还可以将panel放到PlaceHolder(通常情况下在页面上直接放置一个panel)
PlaceHolder1.Controls.Add(panel1);
//增加一个服务器控件Button
Button btn = new Button();
btn.Text = "Button1";
//添加按钮点击脚本
btn.Attributes.Add("onclick", "btnClick(this);");
PlaceHolder1.Controls.Add(btn);
}
/**//// <summary>
/// 注册脚本,(分别响应SELECT选中项改变和btton按钮点击事件)
/// </summary>
/// <param name="?"></param>
protected void RegisterScript()
...{
string myScript = "<script language=javascript>"
+ "function fnChange(oSelect)"
+ "{ "
+ " alert(oSelect.options[oSelect.selectedIndex].text);"
+"}"
+"function btnClick(btn)"
+ "{"
+ " alert(btn.value);"
+ "}"
+ "</script>";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", myScript);
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
//注册脚本
this.RegisterScript();
//
//动态加载控件
//
Panel panel1 = new Panel();
panel1.Width = new Unit("200px");
//增加一个html下拉框控件
string htmlString = " <SELECT ID="oCar" SIZE="1" onchange="fnChange(this)">"
+ " <OPTION VALUE="1">宝马"
+ "<OPTION VALUE="2">保时捷"
+ "<OPTION VALUE="3" SELECTED>奔驰"
+ "</SELECT>";
panel1.Controls.Add(new LiteralControl(htmlString));
//甚至还可以将panel放到PlaceHolder(通常情况下在页面上直接放置一个panel)
PlaceHolder1.Controls.Add(panel1);
//增加一个服务器控件Button
Button btn = new Button();
btn.Text = "Button1";
//添加按钮点击脚本
btn.Attributes.Add("onclick", "btnClick(this);");
PlaceHolder1.Controls.Add(btn);
}
/**//// <summary>
/// 注册脚本,(分别响应SELECT选中项改变和btton按钮点击事件)
/// </summary>
/// <param name="?"></param>
protected void RegisterScript()
...{
string myScript = "<script language=javascript>"
+ "function fnChange(oSelect)"
+ "{ "
+ " alert(oSelect.options[oSelect.selectedIndex].text);"
+"}"
+"function btnClick(btn)"
+ "{"
+ " alert(btn.value);"
+ "}"
+ "</script>";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", myScript);
}
}