【问题标题】:Create HTML table from server side从服务器端创建 HTML 表
【发布时间】:2011-03-24 07:52:08
【问题描述】:

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

  • 标签ID
  • 标签名称
  • 标签网址

现在我想在从数据库创建的 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>"

【问题讨论】:

    标签: asp.net tags html-table


    【解决方案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
    

    【讨论】:

    • 感谢您的回答,但我在
    • "> ">
    • 跨度>
  • @Chris 这很奇怪。你在使用 ASP.NET WebForms 吗? C#/VB?您也可以尝试这样做
  • "> 这段代码显然是 VB.NET 但我刚刚在 c# 下测试过。
  • 【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签