我写了好几个:不同ascx用户控件(每个控件都可以获得一个参数 根据这个参数的不同绑定不同的数据)
然后我用b.aspx的页面来动态的加载控件,但是b.aspx页面中把同一个ascx用户控件同时加
载了2个(就是说在b.aspx页面中同时有2块内容是这个用户控件)。这个2块用户控件得到的是不同的
参数,但是结果是2块用户控件内容是一样的,参数不同应该2块是不一样的内容啊??
请问如何解决同一个ascx用户控件在同一个aspx页面中多块的重用啊?
(ascx用户控件要动态加载 因为b.aspx页面加载哪一块ascx用户控件并不是确定的)
如果解决在另外给100分

解决方案 »

  1.   

    <%@ Register TagPrefix="a1" TagName="SomeText"Src="a.ascx" %>
    <%@ Register TagPrefix="a2" TagName="SomeText"Src="a.ascx" %>
    <a1:SomeText runat="server" />
    <a2:SomeText runat="server" />
    这样可不可以啊?
      

  2.   

    不能预先这样了<%@ Register TagPrefix="a1" TagName="SomeText"Src="a.ascx" %>
    因为要加载哪个ascx是不确定的了
      

  3.   

    make sure your user control has a code behind class, otherwise, you have to use Reflection to set properties, saypublic class YourUserCodeBehindClass : UserControl
    ...YourUserCodeBehindClass  yc = (YourUserCodeBehindClass)LoadControl("YourUserControl.ascx");
    yc.Property1 = "abc";
    form1.Controls.Add(yc);YourUserCodeBehindClass  yc2 = (YourUserCodeBehindClass)LoadControl("YourUserControl.ascx");
    yc2.Property1 = "defg";
    form1.Controls.Add(yc2);
      

  4.   

    WebForm1.aspx.cx private void Page_Load(object sender, System.EventArgs e)
    {
    Control ctl;
    int count = 10, i = 0; for (; i < count; i++)
    {
    ctl = LoadControl("myclass.ascx");
    myclass mc = (myclass) ctl;
    mc.Text = "Control " + i.ToString(); Controls.Add(mc);
    }
    }===============================================================
    myclass.ascx.cs protected string _txt; private void Page_Load(object sender, System.EventArgs e)
    {
    DataBind();
    } public string Text
    {
    get 
    {
    return _txt;
    }
    set 
    {
    _txt = value;
    }
    }
    ==============================================================
    myclass.ascx<%@ Control Language="c#" AutoEventWireup="false" Codebehind="myclass.ascx.cs" Inherits="HDLW.Web.test.myclass" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
    <p><%# _txt %></p>
      

  5.   

    你动态加载用户空间时为他们附上ID值不就可以了
    Control control = Page.LoadControl("control.ascx")
    control.ID = "a1";
    Page.Controls.Add(contorl);