Det gör du redan! Genom att skriva Group='<% DataBinder.Eval(Container.DataItem, "Group")%>' så får den publika variabeln _group i klassen dess värde som du ju sedan använder för att sätta den privata variabeln group... som du i sin tur använder för att plocka ut rätt grupp från din db. För varje gång din pagelet loopas kommer den alltså att hämta den grupp som skrivs ut på den aktuella raden i din Datalist. På så sätt har du "dubbla" möjligheter att styra din presentation, dels en template för varje grupp och sedan gruppen i sig själv via din datagrid. Hänger du med?
Skriva ut tabeller
25 svar · 720 visningar · startad av andreas_lindh · sida 2 av 2
Frågan, av andreas_lindh
Har en sida där jag ska skriva ut tabeller för hockeycuper. Antalet grupper kan vara från 1 och uppåt. Skriva ut en tabell är inga problem. Då skapar jag bara en datagrid Jag hämtar antalet tabeller i en databas. Någon som har en ide om hur jag kan göra när det är flera grupper?
Läs frågan i sin helhet →ok. Jag hänger med men får det inte att fungera.
Inga felmeddelanden men ingenting skrivs ut.
Fungerar sidorna var för sig? Skriv ut variabeln som du skickar in i pageleten. Du måste också registrera din pagelet, har du gjort det? Exempelvis:
<%@ Register TagPrefix="uc1" TagName="Group" Src="Group.ascx" %>
Ja jag har registrerat pageleten.
visar lite kod. kanske har missat något
pageleten
<%@ Control Language="vb" %>
<%@ import namespace="system.data.oledb" %>
<%@ import namespace="system.configuration" %>
<%@ import namespace="system.data" %>
<script runat="server">
dim objconn as new oledbconnection(ConfigurationSettings.AppSettings("connectionstring"))
public cup_id as integer = "35"
private grupp as string = ""
public property _grupp as string
get
grupp=grupp
end get
Set
grupp = Value
end Set
end property
sub page_load(obj as object, e as eventargs)
'hämta tabellen
dim objcmd as new oledbdataadapter _
("select deltagande_lag.namn, tabeller.* from tabeller inner join deltagande_lag on tabeller.lag_id = deltagande_lag.id where tabeller.grupp_id = " & grupp &" order by tabeller.poang desc,tabeller.plusminus desc,tabeller.plus desc,tabeller.win desc,tabeller.lost asc", objconn)
dim ds as dataset =new dataset()
objcmd.fill(ds, "tabeller")
datagrid1.datasource =ds.tables("tabeller"). _
defaultview
databind()
end sub
</script>
aspx sidan
<script runat="server">
dim objconn as new oledbconnection(ConfigurationSettings.AppSettings("connectionstring"))
sub page_load(obj as object, e as eventargs)
dim cup_id as integer = "35"
Dim strSQL as String= String.Format("select * from grupper where cup_id={0}", cup_id)
dim objcmd as new oledbdataadapter(strsql, objconn)
dim ds1 as dataset =new dataset()
objcmd.fill(ds1, "grupper")
datalist.datasource =ds1.tables("grupper"). _
defaultview
databind()
end sub
</script>
<asp:repeater id="datalist" runat="server">
<itemtemplate>
<asp:label id="GroupTopicL" text='<%# DataBinder.Eval(Container.DataItem, "namn")%>' runat="server" />
<hr>
<mypl:grouppl grupp='<% DataBinder.Eval(Container.DataItem, "Id")%>' runat="server" />
</itemtemplate>
</asp:repeater>
Du publika variabel heter "_grupp" - det är den du ska skicka in i din pagelet.
<mypl:grouppl _grupp='<% DataBinder.Eval(Container.DataItem, "Id")%>' runat="server" />
Tack för all hjälp. Nu fungerar det perfekt.
Upptäckte att visual studio hade lagt till lite kod som gjorde att det inte fungerade
