创建了一个用户控件WebUserControl,现在要在一个页面中的后台代码中调用它?应该怎么调用? 该用户控件没有被施到页面上,想在后台用代码创建

解决方案 »

  1.   

    这个倒没有试过哦,我一直是在前台页面直接注册加载
    <%@ Register Src="用户控件的URL" TagName="" TagPrefix ="" %>
      

  2.   


    this.Form.Controls.Add(LoadControl(contrilPath)); contrilPath 是用户控件的位置
      

  3.   

    To:oranrry
    我在后台的Page_Load执行了
    this.Form.Controls.Add(LoadControl(contrilPath)); 
    完成之后,
    我在前台用javascript调用自定义控件里的对象怎么不能调用哈?
      

  4.   

    页面上拖一个PlaceHolderControl control = LoadControl("~/MyUserControl.ascx");
    PlaceHolder1.Controls.Add(control);
      

  5.   


    后台生动态生成的控件实在服务器端完成的
    而前台的javascript实在客户端进行操作
    执行的域不一样当然不能调用也就是说只有执行以后控件才会生成
    但是你的javascript执行的时候控件还没有生成
      

  6.   

    To: oranrry
    我是在后台的Page_Load执行了 
    this.Form.Controls.Add(LoadControl(contrilPath)); 这样自定义控件应该在后台创建生成了. 我在前台一个按钮的javascript调用自定义控件里的对象,发现用不了
      

  7.   

    用你们教的
    var a=LoadControl("XXXX.ascx");
    a.ID="XXXX";
    this.Form.Controls.Add(a);
    之后,发现用foreach循环都枚举不出a这个控件的ID.说明这个控件根本不存在
      

  8.   

    用FindControl("XXXX")也找不到控件.
      

  9.   

    呵呵,我一般是把控件放到一个Div中,把div隐藏,需要的时候再显示出来。
      

  10.   

    不要再Page_Load()中加载,控件的Render是在page的Init事件里处理的,page_load的时候已经完成了Render了,所以,你的得到了null。动态加载控件的代码(4楼回复的正确)应该写到Page的OnInit事件里。
      

  11.   

    new 了然后直接调用方法即可
      

  12.   

    <%@ Page Language="C#" %>
    <%@ Reference Control="~/Controls/Spinner.ascx" %>    
    <script runat="server">
    private ASP.Spinner Spinner1
     
    protected void Page_Load(object sender, EventArgs e)
    {
       Spinner1 = (ASP.Spinner)LoadControl("~/Controls/Spinner.ascx");  
    }protected void Button1_Click(object sender, EventArgs e)
    {
       PlaceHolder1.Controls.Add(Spinner1);   
    }
    </script><html>
    <head id="Head1" runat="server">
      <title>Load User Control Programmatically</title>
    </head>
    <body>
      <form id="form1" runat="server">
        <div>
          <asp:PlaceHolder runat="server" ID="PlaceHolder1" />
          <br />
          <asp:Button ID="Button1" runat="server" 
            Text="Click to Add User Control" 
            OnClick="Button1_Click" />
          <br />
          <br />
          <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        </div>
      </form>
    </body>