附加到具有特定类

时间:2017-10-26 17:01:19

标签: c# html asp.net webforms

如何将某些html附加到具有特定类名的div?

前端:

<div class="school-team-popup"></div>

后端:

StringBuilder _html = new StringBuilder();

_html.AppendFormat("<li>Hi there</li>");

我想在school-team-popup div中添加_html。我怎么能从后端做到这一点?

1 个答案:

答案 0 :(得分:1)

我将解释Web Forms的做事方式。

如果您有一些静态标记要在页面上有选择地显示/隐藏,那么通常可以通过设置控件的Visible属性来实现。

<%-- This is in your ASPX markup (.aspx) --%>
<asp:Panel runat="server" id="HelloWorldPanel">
  <p>Hello, world!</p>
</asp:Panel>

//This is in your code behind (.aspx.cs)
//hide the panel
HelloWorldPanel.Visible = false;
//show the panel
HelloWorldPanel.Visible = true;

如果您尝试从其他来源获取动态数据并将其显示在页面上,您可以在页面上声明标记以显示此数据,然后将数据绑定到标记。有many controls you can bind data to

可以绑定数据的控件的一个示例是转发器。当您想要严格控制在页面上呈现的标记时,中继器很好。您将它们绑定到某个可枚举对象(例如List<T>),然后它将为可枚举对象中的每个元素重复一些标记。

//This is in your project somewhere
namespace MyNamespace
{
    public class Product
    {
        public int Id { get; set; }

        public int Name { get; set; }
    }
}

<%-- This is in your ASPX markup (.aspx) --%>
<ul>
  <asp:Repeater runat="server" id="ProductRepeater" ItemType="MyNamespace.Product">
    <ItemTemplate>
      <li><%#: Item.Id %> - <%#: Item.Name %></li>
    </ItemTemplate>
  </asp:Repeater>
</ul>     

//this is in your code behind (.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostback)
    {
        List<Product> products = MyDataLayer.GetProducts();
        ProductRepeater.DataSource = products;
        ProductRepeater.DataBind();
    }
}