您的位置:首页 > 编程语言 > ASP

asp.net——动态加载控件

2007-04-02 13:58 316 查看
我们经常使用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);


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: