Avatar billede starfarm Nybegynder
03. marts 2008 - 09:31 Der er 1 kommentar

Nested repeater og db.

Hej

Jeg 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%;">&nbsp;</div></div></td>
            <td class="vt4">56</td>
        </asp:Label>
    </tr>
    </ItemTemplate>
    </asp:Repeater>
</table>
</div>
</div>
<div class="clearfix sbboxbot">&nbsp;</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.
Avatar billede dr_chaos Nybegynder
05. marts 2008 - 21:15 #1
prøv med:
  <asp:HiddenField ID="hiddenVoteID" Value='<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server" />
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester