5
我有一个列表视图,显示类似帖子的页面。在每篇文章中应该有一个“评分框”,其功能类似于Facebook中的“赞”按钮。速率框是一个用户控件,里面有一个更新面板。如何使ListPanel中的UpdatePanel工作?
如果我在页面中放置了一些随机值的控件,它的效果很好 - 但是当我将它放在ListView中时,它应该位于它的位置,它不起作用。该方法正在被调用,但没有任何反应。
我简化一下代码,使其更容易理解:
的 “速度盒” 控制:
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(使用控制) :
<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>
在调试过程中,我注意到方法“OnRateClick”中的控件是空的并且不包含正确的值。请指教。
另外,如果您对我做事情的方式有任何意见,请不要抱着自己。
感谢