如题,我从数据库查询出内容,要在一个 <table> 中显示,每一个记录放在一个 <td> 里,每八个记录为一个 <tr> 。
不想在程序里直接生成 html 代码,能用 Repeater 或者 DataGrid 实现吗?100分已经是我全部的身家了。

解决方案 »

  1.   

    设置 datalist的RepeatColunms=8属性就可以了
      

  2.   

    <% @ Page Language = "VB" %>
    <% @ Import Namespace = "System.Data" %>
    <% @ Import Namespace = "System.Data.OleDb" %>
    <html><%dim Record_Per_Page As Short =8 ''定义每一页显示的记录数(.......注意)
    dim Script_Name As String Script_Name = "3.aspx"  '' 当前页的名称.可以任意改的,也可以用编程的.Dim strConn As String ''定义数据连接字符串 
    Dim SQL As String ''定义SQL语句
    Dim odConn As OleDbConnection
    Dim odAdapt As OleDbDataAdapter
    Dim DS As DataSet ''创建DataSet对象
    Dim DT As DataTable ''创建DataTable对象
    Dim nRecCount As Integer ''保存记录总数
    Dim nPageCount As Integer ''保存总共的数据页面数目
    Dim nPage As Integer ''存放要浏览当前数据页面号
    Dim nStart As Integer ''存放当前页面的起始记录序号
    Dim nEnd As Integer ''存放当前页面的终止记录序号
    Dim i As Integer ''确认要浏览的页面序号
    nPage = Convert.ToInt32 ( Request.QueryString ( "Page" ) )
    SQL = "SELECT * FROM tblItem "''创建数据连接字符串
    strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; " & _
    " Data Source = " & Server.MapPath ( "data1.mdb" ) & " ; " & _
    " User ID = ; Password = ; "
    Try
    ''得到数据记录总数
    odConn = New OleDbConnection ( strConn )
    odAdapt = New OleDbDataAdapter ( SQL , odConn )
    DS = New DataSet
    odAdapt.Fill ( DS )
    DT = DS.Tables ( 0 )
    nRecCount = DT.Rows.Count
    Catch e As Exception
    Response.Write("错误信息: <b>" & e.Message & "</b><p>")
    nRecCount = 0
    End Try''判断是否存在数据记录
    If nRecCount > 0 Then
    '' 确定数据记录要显示的页面数
    nPageCount = nRecCount \ Record_Per_Page
    end if
    If nRecCount Mod Record_Per_Page > 0 Then
    nPageCount += 1
    End If''确认浏览命令中的页面参数是否越界,如果越界则重置页面序号
    If nPage = 0 Then
    nPage = 1 
    End If
    If nPage > nPageCount Then
    nPage = nPageCount 
    End If
    Response.Write ( "总共有数据记录" & nRecCount.ToString ( ) & " 条" & "。<br >" )
    Response.Write(" <p > <b >第一种分页显示为:</b > <p > " )
    ''确认当前页面的开始记录和终止记录
    nStart = Record_Per_Page * ( nPage - 1 )
    nEnd = nStart + Record_Per_Page - 1
    If nEnd > nRecCount - 1 Then
    nEnd = nRecCount - 1
    End If
    ''在屏幕中输出记录''浏览"首页"处理办法
    Response.Write ( "&nbsp;" )
    ''显示当前页和合计页数
    Response.Write ( "&nbsp;" & "page:"& nPage.ToString ( ) & "/" & nPageCount.ToString ( ) & " <br > " )%>
    <table width="75%" border="1">
      <tr> 
        <td colspan="4"><%For i = nStart To nEnd
    Response.Write ( DT.Rows ( i ) ( "ItemName" ) & " <br > " )
    Next%></td>
      </tr>
      <tr> 
        <td width="30%"><% Response.Write ( " <p ><font color=blue><A HREF = """ & Script_Name & _
    "?Page=" & ( 1 ).ToString ( ) & _
    """>首页 </A ></font>")%></td>    <td width="38%"><% Response.Write ( " <A HREF = """ & Script_Name & _
    "?Page=" & ( nPage - 1 ).ToString ( ) & _
    """ >前一页</A > " ) %></td>
        <td width="16%"><%Response.Write ( "<A HREF =""" & Script_Name & _
    "?Page=" & ( nPage + 1 ).ToString ( ) & _
    """ >")%><%For i = nStart To nEnd
    Response.Write ( DT.Rows ( i+1 ) ( "ItemName" ) & " <br > " )
    Next  %>    <%   Response.Write("</A > " ) %></td>
        
      </tr>
    </table>
    </html>
      

  3.   

    qflash(小叶) 的解答是正确的,还有一问题,横排和竖排。我想横排的时候,分类颜色按行算,排列顺序也按行,能解决?
      

  4.   

    <% @ Page Language = "VB" %>
    <% @ Import Namespace = "System.Data" %>
    <% @ Import Namespace = "System.Data.OleDb" %>
    <html><%dim Record_Per_Page As Short =8 ''定义每一页显示的记录数(.......注意)
    dim Script_Name As String Script_Name = "3.aspx"  '' 当前页的名称.可以任意改的,也可以用编程的.Dim strConn As String ''定义数据连接字符串 
    Dim SQL As String ''定义SQL语句
    Dim odConn As OleDbConnection
    Dim odAdapt As OleDbDataAdapter
    Dim DS As DataSet ''创建DataSet对象
    Dim DT As DataTable ''创建DataTable对象
    Dim nRecCount As Integer ''保存记录总数
    Dim nPageCount As Integer ''保存总共的数据页面数目
    Dim nPage As Integer ''存放要浏览当前数据页面号
    Dim nStart As Integer ''存放当前页面的起始记录序号
    Dim nEnd As Integer ''存放当前页面的终止记录序号
    Dim i As Integer ''确认要浏览的页面序号
    nPage = Convert.ToInt32 ( Request.QueryString ( "Page" ) )
    SQL = "SELECT * FROM tblItem "''创建数据连接字符串
    strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; " & _
    " Data Source = " & Server.MapPath ( "data1.mdb" ) & " ; " & _
    " User ID = ; Password = ; "
    Try
    ''得到数据记录总数
    odConn = New OleDbConnection ( strConn )
    odAdapt = New OleDbDataAdapter ( SQL , odConn )
    DS = New DataSet
    odAdapt.Fill ( DS )
    DT = DS.Tables ( 0 )
    nRecCount = DT.Rows.Count
    Catch e As Exception
    Response.Write("错误信息: <b>" & e.Message & "</b><p>")
    nRecCount = 0
    End Try''判断是否存在数据记录
    If nRecCount > 0 Then
    '' 确定数据记录要显示的页面数
    nPageCount = nRecCount \ Record_Per_Page
    end if
    If nRecCount Mod Record_Per_Page > 0 Then
    nPageCount += 1
    End If''确认浏览命令中的页面参数是否越界,如果越界则重置页面序号
    If nPage = 0 Then
    nPage = 1 
    End If
    If nPage > nPageCount Then
    nPage = nPageCount 
    End If
    Response.Write ( "总共有数据记录" & nRecCount.ToString ( ) & " 条" & "。<br >" )
    Response.Write(" <p > <b >第一种分页显示为:</b > <p > " )
    ''确认当前页面的开始记录和终止记录
    nStart = Record_Per_Page * ( nPage - 1 )
    nEnd = nStart + Record_Per_Page - 1
    If nEnd > nRecCount - 1 Then
    nEnd = nRecCount - 1
    End If
    ''在屏幕中输出记录''浏览"首页"处理办法
    Response.Write ( "&nbsp;" )
    ''显示当前页和合计页数
    Response.Write ( "&nbsp;" & "page:"& nPage.ToString ( ) & "/" & nPageCount.ToString ( ) & " <br > " )%>
    <table width="75%" border="1">
      <tr> 
        <td colspan="4"><%For i = nStart To nEnd
    Response.Write ( DT.Rows ( i ) ( "ItemName" ) & " <br > " )
    Next%></td>
      </tr>
      <tr> 
        <td width="30%"><% Response.Write ( " <p ><font color=blue><A HREF = """ & Script_Name & _
    "?Page=" & ( 1 ).ToString ( ) & _
    """>首页 </A ></font>")%></td>    <td width="38%"><% Response.Write ( " <A HREF = """ & Script_Name & _
    "?Page=" & ( nPage - 1 ).ToString ( ) & _
    """ >前一页</A > " ) %></td>
        <td width="16%"><%Response.Write ( "<A HREF =""" & Script_Name & _
    "?Page=" & ( nPage + 1 ).ToString ( ) & _
    """ >")%><%For i = nStart To nEnd
    Response.Write ( DT.Rows ( i+1 ) ( "ItemName" ) & " <br > " )
    Next  %>    <%   Response.Write("</A > " ) %></td>
        
      </tr>
    </table>
    </html>
      

  5.   

    晕死,我不要直接输出 HTML 代码的,要求是用控件实现。