Jag har två nästlade gridar, den nästlade griden ska plocka ut det som finns i kategorin i den första. Problemet är att den fylls med samma saker i alla kategorier. Vad har jag gjort för fel? Ändrade tillFel värde vid nästlade gridar
<code>
<asp:GridView ID="grdJokeCat" runat="server" AutoGenerateColumns="False"
GridLines="None" CellSpacing="10" DataKeyNames="jokeCatID"
onrowdatabound="grdJokeCat_RowDataBound"
onrowcreated="grdJokeCat_RowCreated">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table style="width:100%">
<tr>
<td style="width:30%; vertical-align:top;" class="regText italicText">
<%#Eval("jokeCat") %>(<%#Eval("numberOfJokes") %>)<br />
<asp:Panel ID="titlePanel" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label">(visa formulär)</asp:Label>
</asp:Panel>
</td>
<td class="regText"><%#Eval("description") %></td>
</tr>
<tr>
<td colspan="2">
<cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server" TargetControlID="contentPanel"
ExpandControlID="titlePanel" Collapsed="true" TextLabelID="Label1" ExpandedText="(göm historier)"
CollapseControlID="titlePanel" CollapsedText="(visa historier)">
</cc1:CollapsiblePanelExtender>
<div>
<asp:Panel ID="contentPanel" runat="server">
<asp:GridView ID="grdJokes" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table style="width:100%">
<tr>
<td style="width:200px;"><%#Eval("jokeName") %></td>
<td><%#Eval("created") %></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</div>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.cs
protected void grdJokeCat_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (GridViewRow row in grdJokeCat.Rows)
{
GridView grdJokes = (GridView)row.FindControl("grdJokes");
grdJokes.DataSource = JokeAccess.GetJokesByCat(int.Parse(grdJokeCat.DataKeys[0].Value.ToString()));
grdJokes.DataBind();
}
}
protected void grdJokeCat_RowCreated(object sender, GridViewRowEventArgs e)
{
foreach (GridViewRow row in grdJokeCat.Rows)
{
GridView grdJokes = (GridView)row.FindControl("grdJokes");
grdJokes.DataSource = JokeAccess.GetJokesByCat(int.Parse(grdJokeCat.DataKeys[0].Value.ToString()));
grdJokes.DataBind();
}
}
</code>Sv: Fel värde vid nästlade gridar
grdJokes.DataSource = JokeAccess.GetJokesByCat(int.Parse(grdJokeCat.DataKeys[row.RowIndex].Value.ToString()));
Och la det i RoeDataBound eventet så fungerar det.