【问题标题】:How to make UpdatePanel inside ListView work?如何使 ListView 中的 UpdatePanel 工作?
【发布时间】:2010-08-01 12:28:11
【问题描述】:

我有一个带有列表视图的页面,其中显示了类似帖子的内容。在每个帖子上都应该有一个“评分框”,其作用类似于 facebook 中的“Like”按钮。速率框是一个用户控件,里面有一个更新面板。

如果我将带有一些随机值的控件放在页面中,它会很好地工作 - 但是当我将它放在 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”方法中的控件是空的,并且不包含正确的值。请指教。

另外,如果你对我做事的方式有任何意见,请不要拘谨。

谢谢

【问题讨论】:

    标签: asp.net listview user-controls updatepanel


    【解决方案1】:

    您可能没有设置很多东西,仅从您提供的代码 sn-p 中我无法判断。但请确保您执行以下操作:-

    1) 在页面上放置一个 ScriptManager ""。

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      相关资源
      最近更新 更多