现在的位置: 首页 > 综合 > 正文

asp.net——动态加载控件

2013年10月09日 ⁄ 综合 ⁄ 共 1768字 ⁄ 字号 评论关闭

我们经常使用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);
    }

}

抱歉!评论已关闭.