日期:2014-05-17  浏览次数:20469 次

向动态加载的UserControl控件传递参数,用该参数初始化控件中的值
代码如下:
ASPX页面中一个PlaceHolder控件和一个Button控件

CS代码:
C# code

public partial class _Default : System.Web.UI.Page 
{
    protected Control ctl;
    string str1;
    protected void Page_Load(object sender, EventArgs e)
    {
        if(IsPostBack)   
        {
            if (Session["System"] != null)
                str1 = Session["System"].ToString();
            if (ViewState["isLoadControl"] != null && ((bool)ViewState["isLoadControl"]))//再次加载
              {
                this.ctl = this.LoadControl(str1);//加载控件
                  this.ctl.ID = "TEST";
                this.PlaceHolder1.Controls.Add(this.ctl);   //在页面上呈现   
              }
             
         }   

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        BlindHolder("test/test_2.ascx");
    }

    public void BlindHolder(string str)
    {
        PlaceHolder1.Controls.Clear();
        if (this.PlaceHolder1.Controls.Count == 0)   //第一次加载 
        {
            this.ctl = this.LoadControl(str);
            this.ctl.ID = "TEST";
            this.PlaceHolder1.Controls.Add(this.ctl);
        }      
        ViewState["isLoadControl"] = true;
        Session["System"] = str;
    }
}

test_2.ascx代码
C# code

public partial class test_test_2 : System.Web.UI.UserControl
{
    string str;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "TEST2测试成功!";
    }
}




目标:点击Button时,实现动态加载UserControl,
问题:想要在动态加载UserControl的时候向UserControl传递参数,并初始化UserControl控件中的变量,该变量为string或其他内置类型,请问怎么实现?例,初始化test_2.ascx控件中str字符串;

需要代码(伪代码)和思路,先在此谢谢了…………,有解决问题的代码另外加分





------解决方案--------------------
上面的代码放到用户控件中,然后你就可以在加载用户控件后给Str进行赋值。
------解决方案--------------------
http://www.cnblogs.com/lwjacky/archive/2006/09/29/518022.html