2010-08-01 63 views
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>&nbsp;|&nbsp; 
           <%# CurrentPost.LiteralTime %> 
          </div> 
         </ItemTemplate> 
        </asp:ListView> 

在调试过程中,我注意到方法“OnRateClick”中的控件是空的并且不包含正确的值。请指教。

另外,如果您对我做事情的方式有任何意见,请不要抱着自己。

感谢

回答

0

还有,你可能不会设置了很多东西,我不能只是代码片断告诉你给。但请确保您执行以下操作: - 在页面上放置ScriptManager“”。

如果您使用的应用程序中的母版页和您的网页使用了母版页,放置脚本经理母版页。或者,您也可以将脚本管理器放在特定的网页上。

2)在更新面板中为按钮RateButton添加一个触发器。

相关问题