从服务器端创建HTML表

时间:2011-03-24 07:52:08

标签: asp.net tags html-table

我已将我的标签存储在SQL Server数据库中, 表名:标签 COLUMNS

  • 标签识别
  • 标签名
  • TagURL

现在我想在aspx页面中创建一个如下所示的列表,从数据库创建。我已经完成了将数据集中的所有标记和tagURL保存在数据库中的工作。但我不知道如何从数据库创建动态HTML列表或asp.net列表。

我必须创建这样的列表:

<ul>
            <li class="tag1"><a href="#">Lorem ipsum</a></li> 
            <li class="tag2"><a href="#">Dolor sit amet</a></li>

            <li class="tag3"><a href="#">Consectetur adipiscing elit</a></li>
            <li class="tag2"><a href="#">Proin </a></li>
            <li class="tag4"><a href="#">Sagittis libero</a></li>
            <li class="tag1"><a href="#">Aliquet augue</a></li>
            <li class="tag1"><a href="#">Quisque dui lacus</a></li>
            <li class="tag5"><a href="#">Consequat</a></li>

            <li class="tag2"><a href="#">Dictum non</a></li>
            <li class="tag1"><a href="#">Venenatis et tortor</a></li>
            <li class="tag3"><a href="#">Suspendisse mauris</a></li>
            <li class="tag4"><a href="#">In accumsan </a></li>
            <li class="tag1"><a href="#">Egestas neque</a></li>
            <li class="tag5"><a href="#">Mauris eget felis</a></li>

            <li class="tag1"><a href="#">Suspendisse</a></li>
            <li class="tag2"><a href="#">condimentum eleifend nulla</a></li>
        </ul>

其中

>  class="tag <random number from 1-5>"

2 个答案:

答案 0 :(得分:1)

您可能希望使用类似asp.net转发器的东西。这是msdn库中的一个例子,当我写一个更合适的一个。

Digging Into the Repeater

这是我对您的要求的理解。我不确定是否可以更好地处理随机数生成。

 <asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
        <ul>
    </HeaderTemplate>
    <ItemTemplate>
        <li class="<%# String.format("tag{0}", GetRandom())%>"><a href="<%# Eval("TagUrl") %>"><%# Eval("TagName")%></a></li>
    </ItemTemplate>
    <FooterTemplate>
        </ul>
    </FooterTemplate>
</asp:Repeater>

背后的代码

Private _random As Random
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then

        _random = New Random

        Dim dt As New DataTable
        dt.Columns.Add("TagName")
        dt.Columns.Add("TagUrl")


        dt.Rows.Add("Test1", "TestUrl1")
        dt.Rows.Add("Test2", "TestUrl2")
        dt.Rows.Add("Test3", "TestUrl3")
        dt.Rows.Add("Test4", "TestUrl4")
        dt.Rows.Add("Test5", "TestUrl5")

        Repeater1.DataSource = dt
        Repeater1.DataBind()

    End If


End Sub

Protected Function GetRandom() As Integer
    Return _random.Next(1, 5)
End Function

答案 1 :(得分:0)

我也会使用转发器。但是还有两个选择:

  1. 为此目的创建自定义Web控件
  2. 使用文字控件并将html指定给其Text属性。不是很优雅,但如果您只是想要一个快速而肮脏的解决方案,它可能会起作用。请记住将文字Mode-property设置为“Passthrough”以允许html-tags。