我想在A.aspx页面中调用几个自己写的ascx组件,事先我是不知道该页面都调用了哪些的。只是将该页面调用的组件名称(或一个标识符)都存放在一个XML文件中,也就是说我把一个页面的组成元素都用另外一套XML存放起来了,那么我想知道我怎样能在页面中根据该XML来自动(或被动)的生成一个页面呢?谢谢

解决方案 »

  1.   

    以编程方式创建用户控件 正如可以编程方式创建普通的服务器控件一样,也可以这样创建用户控件。页的 LoadControl 方法用于加载用户控件,并传递用户控件源文件的虚拟路径: Control c1 = LoadControl("pagelet7.ascx");
    ((Pagelet7CS)c1).Category = "business";
    Page.Controls.Add(c1);
    Dim c1 As Control = LoadControl("pagelet7.ascx")
    CType(c1, (Pagelet7VB)).Category = "business"
    Page.Controls.Add(c1)
    var c1:Control = LoadControl("pagelet7.ascx");
    (Pagelet7JS(c1)).Category = "business";
    Page.Controls.Add(c1); 
    C#  VB  JScript    
    用户控件的类型由 Control 指令上的 ClassName 属性决定。例如,以文件名“pagelet7.ascx”保存的用户控件被分配强类型“Pagelet7CS”,如下所示: <%@ Control ClassName="Pagelet7CS" %>由于 LoadControl 方法返回 System.Web.UI.Control 类型,因此必须将其转换为适当的强类型以便设置控件的各属性。最后,用户控件被添加到基页的 ControlCollection。   
    C# Pagelet7.aspx [运行示例] | [查看源代码]  
    重要说明 只有当为用户控件包括了 Register 指令时,用户控件的强类型才能由包含 Web 窗体页使用(即使没有实际声明的用户控件标记)。http://chs.gotdotnet.com/quickstart/aspplus/doc/webpagelets.aspx
      

  2.   

    http://www.cnblogs.com/lovecherry/archive/2005/04/09/134543.html
      

  3.   

    我想知道如果加载进来了,那么我怎样把加载过来的控件放到指定的Table里面呢?也就是指定控件的位置还有就是<%@ Control ClassName="Pagelet7CS" %>这个指令我应该怎么加上呢?在后台程序中我应该怎么来控制每个.aspx页面的显示元素呀
      

  4.   

    通过Page.FindControl找到你得table
    然后你在你table中得单元格通过XXX.Controls.Add就可以把控件加到制定的位置了<%@ Control ClassName="Pagelet7CS" %>指令你直接在你的页面里写就行了,我不晓得能不能在后台动态指定,你可以查查资料"由于 LoadControl 方法返回 System.Web.UI.Control 类型,因此必须将其转换为适当的强类型以便设置控件的各属性"