20. januar 2004 - 09:48
Der er
4 kommentarer og
1 løsning
nested repeater og footertemplate data
Jeg har en forholdvis simple repeater som har en lille repeater inden i, jeg fylder så den inderste repeater med informationer omkring en "ordre", jeg smider et ordreid med til funktionen som informationerne bliver trukket ud af db'en på baggrund af. men jeg vil gerne bruge den integer på et link i footeren så ledes jeg kan lave en edit knap til orderen.
Håber der er nogen der kender en snedig løsning eller er det ikke muligt.
her er et forsimplet eks.
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
order
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "data") %>
<asp:Repeater runat="server" DataSource='<%# BindChildOrderListe(Ctype(DataBinder.Eval(Container.DataItem,"ordreid"), Integer)) %>'>
<HeaderTemplate>
<table>
<tr>
<td></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "ejer") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<!-- dette er det som jeg ikke kan finde nogen lsøning på. -->
<asp:HyperLink runat="server" navigateurl='<%# DataBinder.Eval( Container.DataItem, "ordreid", "addorder.aspx?ordreid={0}" ) %>'>tilføj bestilling</asp:HyperLink>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
så er det slut.
</FooterTemplate>
</asp:Repeater>
håber der er nogen der kan hjælpe mig med en løsning.
uc
Nybegynder
20. januar 2004 - 20:45
#3
Ved ikke helt om det virker,
//I BindChildOrderListe
link1.Navigateurl = "addorder.aspx?ordreid={ordreid}";
//I html koden
<asp:HyperLink runat="server id="link1" >tilføj bestilling</asp:HyperLink>
Link1/ordreid vil blive bundet, hver gang BindChildOrderListe bliver kaldt.
Det kunne være, at link1.Navigateurl = "addorder.aspx?ordreid={ordreid}";
kunne ligge et andet sted hvor ordreid var tilstede.?
22. januar 2004 - 16:09
#4
uc : ide'en er god, men jeg får nu problemet at jeg ikke har declaret min webcontrol.
jeg er stadig lidt begynder :) så kommentare omkring dårlig opbygning vil jeg da ikke feje af vejen. Her kommer min nested repeater og de 2 funktioner som fylder data i.
Function BindOrderListe()
dbconnection.Open()
dim madDataset As New DataSet
dim strSql As String = "SELECT ordreid, Dato, lev_tid as [Tid], antalbestillinger as [Antal], Spisested, Ansvarlig FROM MadOrdre"
dim dbdataadapter As OleDbDataAdapter = New OleDbDataAdapter(strSql,dbconnection)
dbdataadapter.Fill(madDataset, "MadOrdre")
ordre.DataSource = madDataset.Tables("MadOrdre")
ordre.DataBind()
dbconnection.Close()
End Function
Function BindChildOrderListe(ByVal intPK As Integer) As DataSet
dim underMadDataset as new DataSet
dim strSql As String = "SELECT * FROM underMadOrdre WHERE ordreid =" & intPK
dim dbdataadapter As OleDbDataAdapter = New OleDbDataAdapter(strSql,dbconnection)
dbdataadapter.Fill(underMadDataset, "underMadOrdre")
tilfoejordre.Navigateurl = "tilfoejordre.aspx?ordreid=" & intPK
Return underMadDataset
End Function
<---------------------------------------------
<asp:Repeater id="ordre" runat="server">
<HeaderTemplate>
<table class="datatable" cellpadding="0" cellspacing="0">
<tr>
<td width="40">
<img border="0" src="../images/opnbookr.gif" width="24" height="22" /></td>
<td width="90">
Dato</td>
<td width="50">
Tid</td>
<td width="50">
Antal</td>
<td width="100">
Spisested</td>
<td width="100">
Ansvarlig</td>
<td width="160">
Funktioner</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<img border="0" src="../images/noder.gif" width="16" height="22" /><img border="0" src="../images/txtdoc.gif" width="24" height="22" /></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "dato") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "tid") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "antal") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "spisested") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "ansvarlig") %></td>
<td>
<asp:HyperLink runat="server" navigateurl='<%# DataBinder.Eval( Container.DataItem, "ordreid", "java script:switchVisible({0});" ) %>'>vis</asp:hyperlink>
|
<asp:HyperLink runat="server" navigateurl='<%# DataBinder.Eval( Container.DataItem, "ordreid", "?ordreid={0}" ) %>'>ret</asp:hyperlink>
</td>
</tr>
<tr>
<td colspan="7" class="struktur_backline">
<table class="datatable" id='<%# DataBinder.Eval(Container.DataItem, "ordreid") %>' style="display: none;">
<tr>
<td>
<asp:Repeater runat="server" DataSource='<%# BindChildOrderListe(Ctype(DataBinder.Eval(Container.DataItem,"ordreid"), Integer)) %>'>
<HeaderTemplate>
<table class="datatable" cellpadding="0" cellspacing="0">
<tr>
<td width="12"></td>
<td width="40" class="struktur_backline"></td>
<td width="100">
Ejer</td>
<td width="100">
Bestilling</td>
<td width="100">
Kommentar</td>
<td width="100">
&</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td></td>
<td>
<img border="0" src="../images/noder.gif" width="16" height="22" /><img border="0" src="../images/txtdoc.gif" width="24" height="22" /></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "ejer") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "bestilling") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "kommentar") %></td>
<td>
<%# DataBinder.Eval(Container.DataItem, "underOrder") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td><asp:HyperLink runat="server" id="tilfoejordre">tilfoej ordre</asp:HyperLink></td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<img border="0" src="../images/lstnoder.gif" width="16" height="22" /><img border="0" src="../images/txtdoc.gif" width="24" height="22" /></td>
<td colspan="6">
<a href="ordre.aspx">opret ny ordre</a></td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>