Nested repeater og db.
HejJeg har et problem med en nested repeater, hvor jeg har et hiddenfield, hvor jeg henter et ID-nummer fra mit dataset. Problemet er, at mit hiddenfield ikke har den forventede værdi når jeg anvender det fra code-behind. Det jeg skal bruge denne værdi til er at holde op mod databasen, for at finde ud af om den enkelte bruger har deltaget før.
Kode kommer her:
<asp:Repeater ID="ParentRepeater" OnItemDataBound="ParentItemBound" runat="server">
<ItemTemplate>
<div class="clearfix sbbox sbb_logged">
<div class="clearfix sbboxtop">
<div class="clearfix ieboxfix">
<asp:HiddenField ID="hiddenID" Value='<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server" />
<h5><%# DataBinder.Eval(Container.DataItem, "Title") %></h5>
<div class="sbb_logged_content">
<p><%# DataBinder.Eval(Container.DataItem, "Question") %></p>
</div>
<p>Stemmer i alt: <%# DataBinder.Eval(Container.DataItem, "Participants") %> ud af <% = userCount %></p>
<table border="0" cellspacing="0" cellpadding="0" class="vote_table">
<asp:Repeater ID="ChildRepeater" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("PollRelation") %>' OnItemCommand="btnVote_Click" OnItemDataBound="ChildItemBound" runat="server">
<ItemTemplate>
<asp:HiddenField ID="hiddenVoteID" Value='<%# DataBinder.Eval(Container.DataItem, "[\"ID\"]") %>' runat="server" />
<tr>
<td class="vt1"><%# DataBinder.Eval(Container.DataItem, "[\"voteText\"]")%></td>
<asp:Label id="lblVoteButton" runat="server">
<td class="vt2"><asp:LinkButton ID="btnVote" CssClass="vote_but" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "[\"ID\"]") %>' Text="vote"></asp:LinkButton></td>
</asp:Label>
<asp:Label ID="lblResult" runat="server">
<td class="vt3"><div class="vote_out"><div class="vote_in" style="width:56%;"> </div></div></td>
<td class="vt4">56</td>
</asp:Label>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
</div>
<div class="clearfix sbboxbot"> </div>
</div>
</ItemTemplate>
</asp:Repeater>
Og code-Behind:
protected void ParentItemBound(object sender, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//get ID for the Item
pollID = int.Parse(((HiddenField)e.Item.FindControl("hiddenID")).Value);
//get total users
DAL dba = new DAL();
userCount = dba.getUserCount();
}
}
protected void ChildItemBound(object sender, RepeaterItemEventArgs e)
{
int test2 = int.Parse(((HiddenField)e.Item.FindControl("hiddenVoteID")).Value);
}
Og det er altså mit hiddenfield i ChildRepeater der ikke får den rigtige værdi.
Ligeledes hvis i har en alternativ måde jeg kan gøre dette på er jeg også åben for dette.
På forhånd tak.