我将我的链接按钮放在updatepanel中,并且工作正常 但是,如果我将该页面打开一个小时,然后单击该链接按钮,则不会调用该链接按钮的单击事件。 如果我想要调用该事件,我必须刷新该页面,而不是开始正常工作。
该链接按钮的.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>
没有必要编写代码,因为一切正常,唯一的问题是
“如果我在没有任何工作的情况下继续打开该页面,而不是为什么在一段时间后没有调用linkbutton click事件?”
答案 0 :(得分:2)
问题不在于代码,而在于.net的行为,即您正在使用session和viewstate。而且他们都会在一段时间后摧毁。为了避免让你的页面不使用这两件事,或者你可以做的最简单的事情是放置一个只会回发的计时器,以便会话和viewstate dosent过期。希望这很清楚。
答案 1 :(得分:0)
我们必须做两件事来收集
1&gt;拉特纳说,按照指示行事。
例如:
<asp:UpdatePanel ID="UpdatePanel10" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="180000">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
2&gt;对要在updatepanel中单击的按钮进行异步回发
例如:
<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>