代码之家  ›  专栏  ›  技术社区  ›  burnt1ce

asp.net:在逻辑上划分用户控件的呈现

  •  1
  • burnt1ce  · 技术社区  · 15 年前

    我想有一个用户控件,在那里,它的呈现HTML逻辑上被分成几个部分。我想要一个aspx页面来动态加载这个用户控件,该控件获取每个部分并将它们放置在aspx页面中的特定点上。这可能吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Matthew    15 年前

    当然有可能。使您的用户控件如下所示:

    <asp:PlaceHolder runat="server" id="section1">
    content
    </asp:Placeholder>
    <asp:PlaceHolder runat="server" id="section2">
    content
    </asp:Placeholder>
    <asp:PlaceHolder runat="server" id="section3">
    content
    </asp:Placeholder>
    

    后面的代码添加了如下3个属性:

    public Control Section1
    {
       get{return section1;}
    }
    
    public Control Section2
    {
       get{return section2;}
    }
    
    public Control Section3
    {
       get{return section3;}
    }
    

    然后,在您的aspx中,您将有3个占位符,代表您希望用户控件的各个部分进入的3个位置。aspx page_load方法中的代码如下所示:

    MyUsercontrol c = LoadControl("MyUsercontrol.ascx") as MyUsercontrol;
    placeholder1.Controls.Add(c.Section1);
    placeholder2.Controls.Add(c.Section2);
    placeholder3.Controls.Add(c.Section3);
    
        2
  •  1
  •   3Dave    15 年前

    假设要呈现的节不是连续的,则为“否”。您的选项是将控件分隔为每个节的单独控件,或创建一个具有方法/属性的类,这些方法/属性分别返回每个节的代码或控件列表。

    推荐文章