Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


datalist med rubriker

Postades av 2005-11-07 14:06:20 - micha hagen, i forum asp.net generellt, Tråden har 19 Kommentarer och lästs av 497 personer

Hej,
jag vill presentera data från en SQL-fråga i en datalist. INformationen som jag vill visa är en katalog med underliggande kapitel och stycken och jag vill att det ska se ut så här:

kapitel 1
stycke 1
stycke 2
stycke 3
kapitel 2
stycke 1
stycke 2
stycke 3
kapitel 3
stycke 1
stycke 2
stycke 3
osv.

kapitel finns i en tabell och stycke i en annan, måste jag nästla två st listor för åstadkomma detta? SKulle vilja köra en sql-fråga och sen bara sätta kapitel som rubrik. Gör jag mig förstådd? OM så, vad är bsta lösningen?


Svara

Sv: datalist med rubriker

Postades av 2005-11-07 16:53:43 - Kjell Ideskär

Om jag förstått rätt får du med
kapitel 1
stycke 1
kapitel 1
stycke 2
osv

Då finns det något bra i SQL som i stället för
INNER JOIN
Använder du
LEFT JOIN
eller
RIGHT JOIN

SELECT * FROM tabell1 LEFT JOIN tabell2 ON tabell1.id = tabell2.tabell1_id bla bla bla

Mvh
Kjell


Svara

Sv:datalist med rubriker

Postades av 2005-11-07 19:14:39 - micha hagen

njae, jag antog att jag inte gjorde mig förstådd. Problemet är inte sql:en utan att presentera informationen. Jaf vill att det ska se ut så här:
RUBRIK
titel författare
titel författare
NÄSTA RUBRIK
titel författare
titel författare

Både rubriker och titel/författare hämtas från en databas. Hur många som finns av varje är ej känt. Hur är det bäst att hämta informationen? Nu kör jag en datalist i en datalist, där yttre datalisten presenterar RUBRIKEN och den inre presenterar titel/författare, men finns det verkligen inget bättre sätt?


Svara

Sv: datalist med rubriker

Postades av 2005-11-07 19:41:42 - Johan Pettersson

Private Sub DL_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DL.ItemCreated
        If viewstate("xKapitel") <> e.Item.DataItem("kapitel") Then
            viewstate("xKapitel") = e.Item.DataItem("kapitel")

            'SKAPA NY RAD OCH ADDA TILL DATALISTEN
        End If
    End Sub


Hämta dvs allt samtigt i samma fråga. Sen kollar du bara när en ny rubrik ska renderas ut som jag gjort ovan.


Nåt sånt kanske? Eller kan du ju använda dig av session och inte viewstaten.


Svara

Sv: datalist med rubriker

Postades av 2005-11-07 21:18:56 - Martin Emanuelsson

Skulle precis svara på det här och ge dig min åsikt men ser att du har löst det precis så som jag skulle ha gjort, med två nästlade datalister... Antar att du då hämtar både "föräldrar" och "barn" i ett anrop (alltså en select-sats för föräldrar och en select-sats för barnen i en stored procedure) till databasen och sen skapar en relation mellan dom två, eller? Så skulle iaf jag ha gjort...


Svara

Sv:datalist med rubriker

Postades av 2005-11-10 08:57:30 - micha hagen

suck, får väl forsätta göra så då, had hoppats att det fanns ngn übersmart lösning men ack.


Svara

Sv: datalist med rubriker

Postades av 2005-11-11 08:17:12 - Johan Pettersson

Testade du inte min lösning?


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 08:41:11 - Martin Berlin

Det är väl egentligen bara att hämta ut din data och sedan dynamiskt skapa en tr för kapitlen och en ny tr för styckena. På så sätt för varje rs med datareadern får du ut det du behöver.


Svara

Sv: datalist med rubriker

Postades av 2005-11-11 09:38:50 - Martin Emanuelsson

Förstår inte riktigt, tycker nästan att du har använt dig av den "übersmarta" lösningen... Iaf om du gjort så som jag föreslår (ingen hybris här inte :-))

Dvs endast ett anrop till databasen där du hämtar föräldrar och barn i en SP. Därefter skapar du en DataRelation mellan dina två datatables i ditt DataSet. Sen binder du din första tabell till den yttersta datalisten och om du har gjort rätt i din innersta datalist sen så visas "barnen" till respektive förälder automagiskt...

Slipper därmed allt vad loopar och if-satser heter...


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 10:16:01 - Ola Lindfeldt

übersmartast & überbäst prestanda.. ;-D
-------------------------------------------------------------------------------------
USE Northwind
SELECT OrderId, ShipName AS TdText, 1 AS TxtOrder
FROM Orders
WHERE orderId in (10250, 10252)
UNION
SELECT OrderId, ' ' + p.ProductName AS TdText, 2 AS TxtOrder
FROM [Order Details] d inner join
Products p on d.ProductID=p.ProductID
WHERE orderId in (10250, 10252)
ORDER BY OrderId, TxtOrder
-------------------------------------------------------------------------------------


Svara

Sv: datalist med rubriker

Postades av 2005-11-11 10:20:21 - Martin Emanuelsson

Nja, så hade jag nog inte gjort iaf... Fast jag kanske inte ska tolka Olas inlägg som kritik mot mitt förslag? Lite svårt att tyda :-)

Hade haft en SP där jag har två separata select-satser, en för att hämta föräldrar och en för att hämta barnen. Dessa hamnar då i DataSet.Tables(0) respektive DataSet.Tables(1) och därefter kan du skapa en DataRelation mellan dessa...


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 10:30:49 - Ola Lindfeldt

Svårt att tyda.. ? Kör det, så ser du att det är ganska simpelt..
Och väldigt mycket bättre prestanda..
All data kan sprutas ut på sidan med SqlDatareader.
Med Dataset-lösningen så måste du anropa GetChildRows för varje Parent (väl?),
[EDIT: eller så görs det bakom kulisserna i den automagiska Databindningen!]
plus att du måste blåsa upp all data i ett Dataset - inte så bra om listan är lång.

Grundfrågeställningen var ju om man kunde lösa det med SQL, inte om man kunde lösa det med .NET-kod, Dataset och en nästlad repeater.


Svara

Sv: datalist med rubriker

Postades av 2005-11-11 10:41:38 - Ola Lindfeldt

Martin, det var inte alls kritik mot din lösning. Den fyller sin funktion ibland och jag har använt detta i ett av mina system. Lösningen lämpar sig t.ex. om följande gäller:
1. Du vill ha ut hierarkisk data på en sida.
2. Du vill även ha ut samma data som XML.
3. Du har inte extrema prestandakrav på applikationen.

Mitt förslag är en alternativ lösning som ger bättre prestanda.


Svara

Sv: datalist med rubriker

Postades av 2005-11-11 10:44:45 - Martin Emanuelsson

Jo jag tyckte nog att det var lite svårt att tyda tyvärr... Du hade gärna fått förklara det lite mer än med bara en kort mening, en smiley och en select-sats... :-)

Men det kan nog vara så som du säger och i så fall är jag glad att jag lärt mig nåt nytt idag också, tackar för det... Har själv än så länge inte upplevt några prestandaproblem när jag löst det så som jag föreslår i mitt inlägg men det kan som du säger nog uppstå vid större datamängder...

Och vad gäller frågeställningen så tolkar jag det som att han frågar efter bästa lösningen på hans problem och det tycker jag nog att jag ger ett förslag på iaf (eller rättare sagt säger jag att jag hade gjort precis som han gjort), även om du kanske överbevisar mig...


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 10:47:29 - Martin Emanuelsson

Det är faktiskt i precis såna lägen som jag har använt "min" lösning... För att visa en hierarkisk struktur av företag i olika nivåer och anställda på respektive företag... Men återigen, tack för din alternativa lösning...


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 10:47:36 - Ola Lindfeldt

Förenklad så att alla ska förstå ;-)


USE Northwind

SELECT CategoryID, 1 AS Sortering2, CategoryName AS Txt
FROM Categories
UNION
SELECT CategoryID, 2 AS Sortering2, ' |-' + ProductName AS Txt
FROM Products
ORDER BY CategoryID, Sortering2


Ger
------
CategoryID Sortering2 Txt
----------- ----------- -------------------------------------------
1 1 Beverages
1 2 |-Chai
1 2 |-Chang
1 2 |-Rhönbräu Klosterbier
2 1 Condiments
2 2 |-Aniseed Syrup
2 2 |-Chef Anton's Cajun Seasoning
2 2 |-Chef Anton's Gumbo Mix
3 1 Confections
3 2 |-Chocolade
3 2 |-Gumbär Gummibärchen



Svara

Sv: datalist med rubriker

Postades av 2005-11-11 10:52:35 - Ola Lindfeldt

Tutorial.. ;-)


Fråga 1
---------
SELECT CategoryID, 1 AS Sortering2, CategoryName AS Txt
FROM Categories

Ger

CategoryID Sortering2 Txt
----------- ----------- -------------------------------------------
1 1 Beverages
2 1 Condiments
3 1 Confections





nästa fråga
-------------
SELECT CategoryID, 2 AS Sortering2, ' |-' + ProductName AS Txt
FROM Products


ger


CategoryID Sortering2 Txt
----------- ----------- -------------------------------------------
1 2 |-Chai
1 2 |-Chang
1 2 |-Guaraná Fantástica
1 2 |-Sasquatch Ale
1 2 |-Steeleye Stout
1 2 |-Côte de Blaye
1 2 |-Chartreuse verte
1 2 |-Ipoh Coffee




med UNION slås de båda resultaten ihop till en logisk tabell.
med sortering på CategoryID, Sortering2 så hamnar allt i rätt ordning.



Svara

Sv:datalist med rubriker

Postades av 2005-11-11 11:00:51 - Ola Lindfeldt

Ytterligare tips:
Sortering2 = 1 eller 2,
kan användas t.ex. för att skapa indrag, i form av
"<div class='indrag" & Sortering2 & ">"
Dvs den alternerar mellan
CSS class 'indrag1' och 'indrag2'





Svara

Sv: datalist med rubriker

Postades av 2005-11-11 14:39:24 - Martin Berlin

Ola,
Jag ville bara ge honom ett exempel på hur man kan lösa en hierkisk struktur. I övrigt håller jag med dig.


Svara

Sv:datalist med rubriker

Postades av 2005-11-11 16:37:28 - Ola Lindfeldt

Martin, det är helt ok :)
Och jag ville visa ett annat sätt man kan göra det på.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 606
27 953
271 705
447
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies