0

我需要使用 asp.net C# Web.UI.WebControls 动态生成以下 HTML(一个 BulletedList、两个面板和一个超链接)

 <ul>
    <li>
        <div class="xxx"><a href="xxx">Home</a></div>
        <div class="xxx">
            <div style="width:500px; height:200px;">
              THis is a test
            </div>
        </div>
    </li>
 </ul>

我尝试使用 BulletedList,但无法将 Panels 和 HyperList 插入 ItemList。要求是使用 asp.net Web 控件(不是直接 HTML)并使用 UI Web 控件动态生成上述 HTML。

有谁知道如何使用 ASP.net UI.WebControls 来做到这一点?

4

1 回答 1

0

好吧,如果您坚持使用 asp 标签来执行此操作,则必须使用中继器...

按照下面的代码

.aspx

<ul>
    <asp:Repeater ID="rp" runat="server">
        <ItemTemplate>
            <li>
                <asp:Panel ID="pnlFirst" runat="server" CssClass="xxx">
                    <asp:HyperLink ID="hlLink" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Name") %>'></asp:HyperLink>
                </asp:Panel>
                <asp:Panel ID="pnlSecond" runat="server" CssClass="xxx">
                    <asp:Panel ID="pnlSubSecond" runat="server" style="width: 500px; height: 200px;">
                        This is <%# Eval("Name") %>
                    </asp:Panel>
                </asp:Panel>
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>

。CS

protected void Page_Load(object sender, EventArgs e)
{
    // Check
    if(!IsPostBack)
    {
        // Variable
        string[] name = { "google", "yahoo" };
        string[] url = { "http://www.google.com", "http://www.yahoo.com" };
        DataTable dt = new DataTable();

        dt.Columns.Add("Name");
        dt.Columns.Add("Url");

        // Add to DataTable
        for (int i = 0; i < name.Length; i++)
            dt.Rows.Add(name[i], url[i]);

        // Check
        if (dt != null && dt.Rows.Count > 0)
        {
            rp.DataSource = dt;
            rp.DataBind();
        }
    }
}
于 2015-11-16T02:39:01.530 回答