【发布时间】:2011-08-11 15:34:12
【问题描述】:
我有一个 ImageButton,当单击它时,它会调用一个代码隐藏方法,该方法执行一些工作并更改 ImageButton 的状态。我想进行部分回发,以便在单击 ImageButton 后不必加载整个页面,还因为我希望 ImageButton 以及它旁边的标签更新。
我想我可以使用 UpdatePanel 来完成此操作,但没有任何运气。这是它目前的样子:
<asp:ScriptManager EnablePartialRendering="true" ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="entry-vote">
<div class="vote-left">
<asp:ImageButton ID="thumb" runat="server" OnClick="Cast_Vote" />
</div>
<div class="vote-right">
<span class="votecount"><%# Eval("Votes.Count") %></span>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
当我单击 ImageButton 时,它似乎等待大约五秒钟,然后执行后面的代码。
我以前从未使用过部分回发,所以我在这里有点盲目。
【问题讨论】:
-
我会推荐使用 jquery 或 javascript 来更新标签和图像按钮?您需要使用回发来完成它吗?
-
这个 Eval 是什么,这是在中继器内部吗?
-
因此,显然,“延迟”仅仅是由于在 Debug 中在 localhost 上运行的应用程序造成的。我尝试在发布模式下将它部署到我的测试服务器,它工作得很好。
-
有时将 UpdatePanel 的 UpdateMode 设置为 Conditional 会使其执行伪部分回发,但根据我的经验,更新面板仍会回发整个视图状态。因此,如果您有一个列表视图,那么您的视图状态很有可能会在每次 UpdatePanel 更新时来回切换。 jQuery FTW :)
-
@Dimitri:我认为我会使用 UpdatePanel 的原因是因为我需要在服务器端执行一些业务逻辑并实际查询我的数据库。我怎样才能使用 jQuery 来实现呢?
标签: asp.net ajax partial-postback