La pagina aspx è:
codice:
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Categoryname") %>
<asp:DataList id="DataList2" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Productname") %>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
</form>
Mentre il codebehind:
codice:
Imports System.Data
Imports System.Data.SqlClient
Public Class WebForm5
Inherits System.Web.UI.Page
Dim dtProdotti As New DataTable("Products")
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList
Protected WithEvents DataList2 As System.Web.UI.WebControls.DataList
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If Not Page.IsPostBack Then
GetProdotti()
bindDataList()
End If
End Sub
Private Sub bindDataList()
Dim cnn As New SqlConnection("Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=localhost")
Dim cmd As New SqlCommand("SELECT * FROM Categories", cnn)
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable("Categories")
cnn.Open()
da.Fill(dt)
cnn.Close()
Me.DataList1.DataSource = dt
Me.DataList1.DataBind()
End Sub
Private Sub GetProdotti()
Dim cnn As New SqlConnection("Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=localhost")
Dim cmd As New SqlCommand("SELECT * FROM Products", cnn)
Dim da As New SqlDataAdapter(cmd)
'Dim dt As New DataTable("Products")
cnn.Open()
da.Fill(dtProdotti)
cnn.Close()
End Sub
Private Sub bindDataList2(ByVal i As String, ByRef dl As DataList)
Dim dv As DataView
dv = dtProdotti.DefaultView
dv.RowFilter = "CategoryID = " & i
dl.DataSource = dv
dl.DataBind()
End Sub
Private Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
Dim d As DataRowView
d = e.Item.DataItem
Dim d2 As DataList
d2 = e.Item.FindControl("DataList2")
bindDataList2(d(0), d2)
End Sub
End Class
Fammi sapere
Ciao
Kalman