2 nested repeatere, problem med at sætte visible att.
Hej folkensJeg har en repeater som indeholder en anden repeater, som ligner dette(jeg har pillet den del fra for at gøre det overskueligt men jeg har ikke fjerne noget af betydning) :
<asp:Repeater id="ordre" runat="server">
<HeaderTemplate>
<table width="590" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td valign="top">
<%# DataBinder.Eval(Container.DataItem, "dato") %></td>
</tr>
<tr>
<td colspan="7" >
<table id='<%# DataBinder.Eval(Container.DataItem, "ordreid") %>'>
<tr>
<td>
<asp:Repeater id="underOrdre" runat="server" DataSource='<%# BindChildOrderListe(Ctype(DataBinder.Eval(Container.DataItem,"ordreid"), Integer)) %>'>
<HeaderTemplate>
<table width="577" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
Bestilling:</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "bestilling") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<a href="#top">top</a></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 order</a></td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
og bruger så disse functioner :
Protected Function BindOrderListe(ByVal tid As DateTime)
Dim madDataset As New DataSet
Dim strSql As String = "SELECT MadOrdre.ordreid, Format$(MadOrdre.dato,'dd-mm-yyyy') AS Dato_, Format$(MadOrdre.dato,'hh:mm') AS Tid, MadOrdre.antalbestillinger as Antal, Spisested, Ansvarlig, email FROM MadOrdre WHERE (MadOrdre.dato>#" & Tool.getTimeString(tid) & "#) AND (MadOrdre.bestilt=false) ORDER BY MadOrdre.dato"
Try
dbconnection.Open()
Dim dbdataadapter As OleDbDataAdapter = New OleDbDataAdapter(strSql,dbconnection)
dbdataadapter.Fill(madDataset, "MadOrdre")
ordre.DataSource = madDataset.Tables("MadOrdre")
ordre.DataBind()
Catch ex As exception
errorLabel.Text = "Fejl: " & ex.message & "<br /> strSql: " & strSql.ToString()
Finally
If dbconnection.State = ConnectionState.Open Then
dbconnection.Close()
End If
End Try
End Function
Protected Function BindChildOrderListe(ByVal ordreid As Integer) As DataSet
Dim underMadDataset As New DataSet
Dim strSql As String = "SELECT * FROM underMadOrdre WHERE ordreid=" & ordreid.ToString()
Try
Dim dbdataadapter As OleDbDataAdapter = New OleDbDataAdapter(strSql,dbconnection)
dbdataadapter.Fill(underMadDataset, "underMadOrdre")
Catch ex As exception
errorLabel.Text = "Fejl: " & ex.message
End Try
if not underMadDataset.IsEmpty() then
Return underMadDataset
else
return new dataset
end if
End Function
Mit problem er at når jeg få en linie ud i den overlæggende repeater som ikke har nogen underordre tilknyttet bliver header og footer stadig generet og jeg får en masse spild plads med tomme tabler. Er der ikke en mulighed for at lave en form kontrol også sætte den pågældende repeaters visible attribut til false. Men selvfølgelig stadig kun på den ene linie i den udenom læggende repeater.
Håber der er en som forstå og kan hjælpe mig, på forhånd tak.