首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让ListView中的UpdatePanel正常工作?

如何让ListView中的UpdatePanel正常工作?
EN

Stack Overflow用户
提问于 2010-08-01 20:28:11
回答 1查看 1.8K关注 0票数 5

我有一个带有列表视图的页面,它显示了一些类似帖子的东西。在每个帖子上应该有一个“费率框”,它的工作方式类似于facebook中的“喜欢”按钮。rate框是一个用户控件,里面有一个更新面板。

如果我将带有一些随机值的控件放在页面中,它会工作得很好-但当我把它放在ListView中时,它不会工作。正在调用该方法,但什么也没有发生。

我对代码进行了一些简化,使其更容易理解:

"rate box“控件:

代码语言:javascript
代码运行次数:0
运行
复制
    protected void OnRateClick(object sender, ImageClickEventArgs e)
    {
        Rate++;
        RateAmountLiteral.Text = Rate.ToString();
        RateButton.Visible = false;
        FeedbackLiteral.Visible = true;

        rateButtonPanel.Update();
    }

ascx:

代码语言:javascript
代码运行次数:0
运行
复制
<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 (使用控件):

代码语言:javascript
代码运行次数:0
运行
复制
                     <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“中的控件是空的,并且没有包含正确的值。敬请指教。

另外,如果你对我做事情的方式有任何意见,不要固执己见。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-01-21 19:44:49

有很多东西你可能还没有设置,我不能仅仅从你给出的代码片段中判断出来。但请确保您执行以下操作:

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3382030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档