【发布时间】:2013-11-23 08:23:40
【问题描述】:
我有一个由使用 CollectionPager 的转发器加载的用户控件。此用户控件内部有一个 UpdatePanel,如下所示:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div style="float:right; height:32px; width:32px"><asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
<img alt="Working..." class="auto-style5" src="Images/ajaxloader.gif" width="32px" height="32px" />
</ProgressTemplate>
</asp:UpdateProgress></div>
<br />
<div style="font-family:Segoe UI Light, Tahoma, Geneva, Verdana, sans-serif">
Upvoted By
<asp:Label ID="lblUp" runat="server" Text=""></asp:Label>
| Downvoted By
<asp:Label ID="lblDown" runat="server" Text=""></asp:Label>
<br />
<asp:LinkButton ID="lnkUp" runat="server" ForeColor="#003300" OnClick="lnkUp_Click">Vote Up</asp:LinkButton>
<asp:LinkButton ID="lnkDown" runat="server" ForeColor="Red">Vote Down</asp:LinkButton>
<asp:LinkButton ID="lnkAddComment" runat="server" ForeColor="Maroon">Add Comment</asp:LinkButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
LinkButton lnkUp 将标签 lblUp 的值增加 1,如下所示:
protected void lnkUp_Click(object sender, EventArgs e)
{
try
{
lblUp.Text = (int.Parse(lblUp.Text) + 1).ToString();
lnkUp.Text = "Undo vote up";
}
catch (Exception ex)
{
throw ex;
}
}
问题是,当我单击转发器加载的一个用户控件的lnkUp LinkButton 时,它会增加相应的lblUpLabel 的值。但是当我单击另一个用户控件的lnkUp LinkButton 也由转发器加载时,它成功地增加了其相应的lblUp 标签文本,但重置了前用户控件的lblUp 标签文本。简而言之,当单击另一个用户控件时,UpdatePanel 不会保持状态。我该如何解决?
【问题讨论】:
标签: c# asp.net .net ajax updatepanel