Just nu i M3-nätverket
Jump to content

asp.net Datalist


Bjarne

Recommended Posts

Ok, har lite kod som visar resultatet av en databas-fråga i en datalist. Allt Hunky-Dory så långt:

 

<asp:DataList id="theDataList" runat="server">

<ItemTemplate>

<table border="0" width="500">

<tr>

<td>

<%# DataBinder.Eval(Container.DataItem, "newsHead") %>

</td>

<td>

<%# DataBinder.Eval(Container.DataItem, "newsText") %>

</td>

<td>

 

</td>

</tr>

</table>

</ItemTemplate>

<separatortemplate>

<hr color="#0099FF" />

</separatortemplate>

</asp:DataList>

 

Men, för varje returnerad rad, vill jag köra en fråga till mot en annan tabell, för att se om jag får någon match. Isf, skall jag skriva ut något i den sista cellen i raden, annars skall den vara tom. Enkelt, tänkte jag och försökt anropa en funktion i sista cellen, som plockar upp radens id och kör önskad fråga:

 

<td>

<%

subRutinSomKörFråga(DataBinder.Eval(Container.DataItem, "newsId") )

%>

</td>

 

Men inte fasen funkar det. Har nån koll på hur jag gör detta smartast?

 

[inlägget ändrat 2003-02-05 08:22:27 av Bjarne]

Link to comment
Share on other sites

Låt mig se om jag gissat det korrekt.

 

Du har ett antal poster som du vill plocka ut om dessa finns med i en annan tabell????

 

Kan du inte göra så att du FÖRST plockar ut id-numrena ur tabell nr2 skapar en SQL sats där bara de poster som finns i databas 2 plockas ut och sedan skapar datalistan.

 

Borde nog gå både snabbare och enklare.

 

/Johan

 

[inlägget ändrat 2003-02-05 12:11:30 av Johan Knape]

Link to comment
Share on other sites

Tjena!

Nej, isf hade jag gjort en join i en enda sql sats.

 

Posterna från den första frågan skall skrivas ut oavsett om det blir träff eller inte i den andra tabellen.

Jag vill alltså kolla för varje rad om det finns nån match i en annan tabell, isf skrivs en länk ut, om det inte finns nån träff, så skrivs ingen länk ut.

 

Problemet är att jag vill på nåt sätt få fram radens id nummer från datalisten och skicka in det i en subrutin. Eftersom datalisten fiffigt loopar själv, så anger (Container.DataItem, "fältnamn") vad som skall skrivas var i datalisten. Man skulle då kunna tro att det går att fånga upp id:et för raden med (Container.DataItem, "id-fältsnamn") men icke sa nicke.

 

Alltså, det är ju enkelt om jag inte skulle använda en datalist, men nu vill jag prova om detta går att göra med en datalist :)

 

 

[inlägget ändrat 2003-02-05 12:19:06 av Bjarne]

Link to comment
Share on other sites

Christopher Bergren

Kör en OUTER JOIN isåfall

Den tabell där alla poster ska skrivas ut kallar jag för Tabell1, den andra Tabell2.

Joinen blir då

(Tabell1 t1 LEFT OUTER JOIN Tabell2 t2 ON t1.foreignId=t2.id)

 

I de fall det inte finns en match i tabell2 kommer du bara få Null i dess fält, så använder du if isNull(yadayada) i koden.

 

/Chris

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...