我有一个由使用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时,它会递增相应lblUp
标签的值。但是,当我点击另一个也由转发器加载的用户控件的lnkUp
LinkButton时,它会成功递增其相应的lblUp
标签,但会重置以前的用户控件{{s} { {1}}标签文字。简而言之,UpdatePanels在单击另一个用户控件时不会保持状态。我该如何解决这个问题?
答案 0 :(得分:1)
检查你的更新模式它应该是'always'。 或者做
protected void lnkUp_Click(object sender, EventArgs e)
{
try
{
lblUp.Text = (int.Parse(lblUp.Text) + 1).ToString();
lnkUp.Text = "Undo vote up";
UpdatePanel1.update();
}
catch (Exception ex)
{
throw ex;
}
}