Questa è la mia pagina index.aspx
codice:
<%@ Page Language="VB" Inherits="MyArgomenti" Src="Index.vb" %>
<html>
<head>
</head>
<body>
<form runat="server">
<table>
<tbody>
<tr>
<td>
</td>
<td>
<asp:Repeater id="RepeaterArgomenti" runat="server">
<HeaderTemplate>
<table border="2">
<tr>
<td>
</td>
<td align="middle">
Forum</td>
<td align="middle">
Msg</td>
<td align="middle">
Ultimo Messaggio</td>
<td align="middle">
Moderatore</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td colspan="5">
<%# Container.DataItem("Ar_Nome") %>
</td>
</tr>
<asp:Repeater id="RepeaterForum" runat="server" datasource='<%# ShowForum (Container.DataItem("Ar_Id")) %>'>
<ItemTemplate>
<tr>
<td align="middle">
<%# Container.DataItem("Fo_Id") %></td>
<td>
<%# Container.DataItem("Fo_Nome")%>
<%# Container.DataItem("Fo_Descrizione")%></td>
<td align="middle">
<%# Container.DataItem("Fo_Count")%></td>
<td align="middle">
<%# FormatDateTime(Container.DataItem("Fo_LastPost"), DateFormat.ShortDate)%>
di: <%# Container.DataItem("IscrReply.Is_Nome")%></td>
<td align="middle">
<%# Container.DataItem("Iscritti.Is_Nome")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
Mentre questo è il file di code-behind Index.vb:
codice:
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Configuration
Imports System.Data
Imports System.Data.OleDb
Imports MyComponents
Public Class MyArgomenti
Inherits Page
Protected withevents RepeaterArgomenti as Repeater
Private ForumQuery As DataView
Sub Page_Load
Dim ForumData As DataSet
Dim ForumConn As OleDbConnection
Dim ForumAdapt As OleDbDataAdapter
Dim StrSql As string
ForumData= new DataSet()
ForumConn= New OleDbConnection(ConfigurationSettings.AppSettings("ConnForum"))
StrSql = "SELECT Ar_Id, Ar_Nome FROM Argomenti ORDER BY Ar_Nome"
ForumConn.Open()
ForumAdapt= New OleDbDataAdapter (StrSql,ForumConn)
ForumAdapt.Fill (ForumData, "Tabella_Argomenti")
StrSql = "SELECT Forum.Fo_Id, Forum.Fo_Nome, Forum.Fo_Descrizione, Forum.Fo_Argomento, Forum.Fo_Count, Forum.Fo_LastPost, Forum.Fo_Moderatore, Forum.Fo_View, IscrReply.Is_Nome, Iscritti.Is_Nome "
StrSql &= "FROM (Forum INNER JOIN Iscritti ON Forum.Fo_Moderatore = Iscritti.Is_Id) INNER JOIN Iscritti AS IscrReply ON Forum.Fo_LastPostAutore=IscrReply.Is_Id "
StrSql &= "WHERE Fo_View='vero' ORDER BY Fo_Nome"
ForumAdapt.SelectCommand = New OleDbCommand(StrSql, ForumConn )
ForumAdapt.Fill( ForumData, "Tabella_Forum" )
ForumConn.Close()
ForumQuery = ForumData.Tables( "Tabella_Forum" ).DefaultView()
RepeaterArgomenti.DataSource = ForumData
RepeaterArgomenti.DataMember = "Tabella_Argomenti"
RepeaterArgomenti.DataBind()
End Sub
Function ShowForum( Ar_Id As Integer) As DataView
ForumQuery.RowFilter = "Fo_Argomento=" & Ar_Id
Return ForumQuery
End Function
End Class
A livello grafico il risultato è un qualcosa di molto simile all'homepage di questo forum:
codice:
Categoria 1
aa aaa aaaa aaa
bb bbb bbbb bbb
cc ccc cccc ccc
Categoria 2
aa aaa aaaa aaa
bb bbb bbbb bbb
cc ccc cccc ccc