Hallo zusammen, ich habe folgendes Problem:
Ich möchte gerne eine simple menüstruktur erstellen. Dabei stehen mir Daten aus einer Datenbank als Menüpunkte zur Verfügung. Ich habe zwei tabellen, aus denen ich die Menüpunkte auslesen möchte. 1. Category; 2. Products.
Ich möchte nun eine Struktur erstellen, die folgendermaßen aussieht.
Category 1
Product
Product
Product
Category 2
Product
Product
.
.
.
.
Ich habe bisher mit DataList, Gridview und Repeater rumgespielt, bekomme das aber nicht so formatiert, wie ich das gerne möchte. Es sieht dann folgendermaßen aus.
Category 1
Product
Category 1
Product
.
.
.
Category 2
Product
Category 2
Product
.
.
Jedes Produkt bekommt praktisch seine Kategorie vorangestellt.
Hier jetzt ein bisschen Code:
ViewStoreMenu.ascx
ViewStoreMenu.ascx.vb
Mein Problem ist, dass ich in der Code behind Datei die Datensätze aus der SqlDataSource nicht speichern kann und ich nicht weiß, wie ich das DataList-Control dynamisch im Page_load Event befüllen kann. Soetwas wie DataList1.Row.add gibt es ja leider nicht.
Das ganze soll nachher als DotNetNuke Modul fingieren. Ist aber für die ASP.Net2 Codierung unerheblich..
Kann mir jemand helfen ?
Ich möchte gerne eine simple menüstruktur erstellen. Dabei stehen mir Daten aus einer Datenbank als Menüpunkte zur Verfügung. Ich habe zwei tabellen, aus denen ich die Menüpunkte auslesen möchte. 1. Category; 2. Products.
Ich möchte nun eine Struktur erstellen, die folgendermaßen aussieht.
Category 1
Product
Product
Product
Category 2
Product
Product
.
.
.
.
Ich habe bisher mit DataList, Gridview und Repeater rumgespielt, bekomme das aber nicht so formatiert, wie ich das gerne möchte. Es sieht dann folgendermaßen aus.
Category 1
Product
Category 1
Product
.
.
.
Category 2
Product
Category 2
Product
.
.
Jedes Produkt bekommt praktisch seine Kategorie vorangestellt.
Hier jetzt ein bisschen Code:
ViewStoreMenu.ascx
Code:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="ViewStoreMenu.ascx.vb" Inherits="DesktopModules_StoreMenu_ViewStoreMenu" %> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ContentNukeConnectionString2 %>" CacheDuration="60" EnableCaching="True"> </asp:SqlDataSource> <asp:DataList ID="DataList1" runat="server" Style="position: static" Height="1px" Width="278px" OnItemCreated="Item_Created"> <ItemTemplate> <ul> <li><%#Eval("CategoryName")%> <ul><li><%# Eval ("ModelName")%></li></ul> </li> </ul> </ItemTemplate> </asp:DataList>
Code:
Imports DotNetNuke Imports System.Web.UI Imports System.Web Imports System.Collections.Generic Imports System.Reflection Imports DotNetNuke.Security.PortalSecurity Partial Class DesktopModules_StoreMenu_ViewStoreMenu Inherits Entities.Modules.PortalModuleBase Function CreateDataSource() As ICollection Dim dt As DataTable = New DataTable() Dim dr As DataRow dt.Columns.Add(New DataColumn("Category", GetType(String))) dt.Columns.Add(New DataColumn("Produkt", GetType(String))) dr = dt.NewRow() dr(0) = "<%eval (""Category Name"") %>" End Function Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim cnt, cnt2 Dim i As Integer Dim j As Integer DataList1.DataSourceID = "SqlDataSource1" If Request("categoryID") = "" Then SqlDataSource1.SelectCommand = "SELECT Distinct CategoryName FROM WWStore_Categories" Else SqlDataSource1.SelectCommand = "SELECT wwStore_Products.ModelName, wwStore_Categories.CategoryName FROM WWStore_Categories INNER JOIN WWStore_Products ON wwStore_Categories.CategoryID = wwStore_Products.CategoryID WHERE wwStore_Products.CategoryID ='" & Request("categoryID") & "'" End If End Sub Sub Item_Created(ByVal sender As Object, ByVal e As DataListItemEventArgs) Dim CategoryLabel As Label = CType(e.Item.FindControl("Category"), Label) CategoryLabel.Text = "LALA" End Sub End Class
Das ganze soll nachher als DotNetNuke Modul fingieren. Ist aber für die ASP.Net2 Codierung unerheblich..
Kann mir jemand helfen ?