如何动态地将面板和hyperLint插入BulletedList

时间:2015-11-16 01:35:23

标签: c# asp.net panel bulletedlist

我需要使用asp.net C#Web.UI.WebControls

动态生成以下HTML(BulletedList,两个Panel和一个HyperLink)
 <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?

1 个答案:

答案 0 :(得分: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();
        }
    }
}