J'ai une page avec un listview qui montre quelque chose comme des messages. Sur chaque post, il devrait y avoir une "boîte de taux" qui fonctionne de manière similaire au bouton "J'aime" sur facebook. La zone de taux est un contrôle utilisateur, qui a un panneau de mise à jour à l'intérieur.Comment faire UpdatePanel dans le travail ListView?
Si je mets le contrôle avec des valeurs aléatoires dans la page, cela fonctionne très bien - mais quand je le mets dans le ListView, où il devrait être situé, cela ne fonctionnera pas. La méthode est appelée, mais rien ne se passe.
I simplifié un peu le code pour le rendre plus facile à comprendre:
Le contrôle "boîte de vitesse":
protected void OnRateClick(object sender, ImageClickEventArgs e)
{
Rate++;
RateAmountLiteral.Text = Rate.ToString();
RateButton.Visible = false;
FeedbackLiteral.Visible = true;
rateButtonPanel.Update();
}
ascx:
<div class="rate_div">
<asp:UpdatePanel ID="rateButtonPanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<fieldset>
Rate:
<asp:Literal ID="RateAmountLiteral" runat="server"></asp:Literal>
<asp:ImageButton ID="RateButton" runat="server" ImageUrl="icn_rate.png"
OnClick="OnRateClick" />
<asp:Literal ID="FeedbackLiteral" runat="server" Visible="false">Thanks for rating!</asp:Literal>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
ASPX (en utilisant la commande) :
<asp:ListView ID="PostsView" runat="server" ItemPlaceholderID="itemPlaceHolder2"
<LayoutTemplate>
<div class="posts_div">
<asp:PlaceHolder ID="itemPlaceHolder2" runat="server" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div class="post_div">
<div class="post_body">
<%# CurrentPost.Body %>
</div>
<UC:RatingBox id="RatingBox" runat="server"
PostID="<%# CurrentPost.ID %>"
Rate="<%# CurrentPost.Rate %>"/>
By: <a href="<%# CurrentPost.Author.LinkToProfile %>">
<%# CurrentPost.Author.DisplayName %>
</a> |
<%# CurrentPost.LiteralTime %>
</div>
</ItemTemplate>
</asp:ListView>
Lors du débogage, j'ai remarqué que les commandes de la méthode "OnRateClick" sont vides et ne contiennent pas les bonnes valeurs. Veuillez nous conseiller
Aussi si vous avez des commentaires sur la façon dont j'ai fait les choses, ne vous tenez pas.
Merci