2

我将我的链接按钮放在更新面板中并且工作正常但是如果我将该页面一起打开一个小时然后单击该链接按钮,则不会调用该链接按钮的单击事件。如果我想调用该事件,我必须刷新该页面,然后它才能开始正常工作。

该链接按钮的我的 .cs 代码(aspx.cs)是

protected void lnkcontact_Click(object sender, EventArgs e)
{
     Response.Redirect("index.aspx?name=6");  
}

我的设计页面代码(aspx)

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>                            
<asp:LinkButton CssClass="bottom-link" ID="lnkcontact" runat="server" OnClick="lnkcontact_Click">CONTACT</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>

无需编写代码,因为一切正常,唯一的问题是

“如果我在没有任何工作的情况下连续打开该页面,那么为什么一段时间后不调用链接按钮单击事件?”

4

2 回答 2

2

问题不在于代码,而在于.net 的行为方式,即您正在使用会话和视图状态。并且它们都倾向于在一段时间后被破坏。为了避免让你的页面不使用这两个东西,或者你可以做的最简单的事情是放置一个计时器,它只会回发,以便会话和视图状态过期。希望这很清楚。

于 2013-10-25T08:58:24.780 回答
0

我们必须做两件事来收集

1 > 按照 Ratna 所说的说明进行操作。

例如:

 <asp:UpdatePanel ID="UpdatePanel10" runat="server">
  <ContentTemplate>
   <asp:Timer ID="Timer1" runat="server" Interval="180000">
  </asp:Timer>
 </ContentTemplate>
</asp:UpdatePanel>

2 > 在更新面板中对要单击的按钮进行异步回发

例如:

 <asp:UpdatePanel ID="UpdatePanel15" runat="server" UpdateMode="Conditional">
 <ContentTemplate>
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="" EventName="" />//this is asynchronouspostback
  </Triggers>
</asp:UpdatePanel>

所以这收集表单代码为

 <asp:UpdatePanel ID="UpdatePanel10" runat="server">
  <ContentTemplate>
   <asp:Timer ID="Timer1" runat="server" Interval="180000">
  </asp:Timer>
 </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel15" runat="server" UpdateMode="Conditional">
 <ContentTemplate>
 <asp:Button ID="btn" runat="server" Text="Upload File" OnClick="btn_upload_file_Click" />
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btn" EventName="Click" />//this is asynchronouspostback
  </Triggers>
</asp:UpdatePanel>
于 2014-02-08T10:58:58.740 回答