c# - 页面打开几分钟后没有触发 OnClick 事件
问题描述
我已经搜索了这个,但没有找到任何匹配的问题:
我在我们公司的本地服务器上托管了一个 DNN 网站,并且我有自己的模块,其中有一些带有文本框和按钮的表单。我现在有以下问题:
当我输入文本时,我打开页面并单击按钮,触发 OnClick-Event 并且一切正常。当我现在将页面打开几分钟然后单击按钮时,页面只是重新加载并且事件没有触发。
我也尝试过多次调试,但如果页面打开超过 5 分钟,调试器永远不会在 OnClick 方法处停止(我不知道确切的超时,因为我不知道哪个参数导致这个)
我不确定这是否是 IIS、ASP 或 DNN 的问题 - 所以我希望在这里找到帮助。如果您需要更多信息,请询问。
由于您要求提供代码,因此我将其简化为重要的行(总共有几千行):
查看.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="View" %>
...
<asp:Panel runat="server" ID="pnlGridView"></asp:Panel>
...
查看.ascx.cs
public partial class View : FremdeBestellungenModuleBase, IActionable
{
...
protected void Page_Load(object sender, EventArgs e)
{
try
{
...
BuildGrids(true);
...
}
catch (Exception exc) //Module failed to load
{
Exceptions.ProcessModuleLoadException(this, exc);
}
}
...
private void BuildGrids(bool all)
{
...
GridView gv = new GridView()
{
ID = "GridView_" + role,
AllowSorting = true,
AutoGenerateColumns = false,
...
};
...
gv.RowDataBound += new GridViewRowEventHandler(Generated_GridView_RowDataBound);
gv.Sorting += new GridViewSortEventHandler(GridviewBestellung_Sorting);
if (Session["sort"] == null)
{
Session[gv.ID] = gv.DataSource = list.Where(elem => elem != null).OrderByDescending(x => x.BestellNr).ToList();
}
else
{
gv.DataSource = Session[gv.ID];
}
gv.DataBind();
if (FindControl(gv.ID) == null)
{
pnlGridView.Controls.Add(gv);
}
}
...
protected void Generated_GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridView gv = sender as GridView;
if (e.Row.RowType == DataControlRowType.DataRow)
{
...
CheckBox chkManager = new CheckBox()
{
ID = "chkManager"
};
e.Row.Cells[ManagerColumns.CheckUndHidden].Controls.Add(chkManager);
...
if (e.Row.RowType == DataControlRowType.Footer)
{
...
Button btnFreigeben = new Button()
{
ID = "btnFreigeben",
Text = "Freigeben",
UseSubmitBehavior = false
};
btnFreigeben.Click += new EventHandler(BtnFreigeben_Click);
...
}
}
protected void BtnFreigeben_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
GridView gv = (GridView)btn.NamingContainer.NamingContainer;
foreach (GridViewRow r in gv.Rows)
{
CheckBox chkManager = r.FindControl("chkManager") as CheckBox;
if (chkManager.Checked)
{
//do stuff;
BuildGrids(true);
Response.Redirect(Request.RawUrl);
}
}
解决方案
推荐阅读
- python - Matplotlib 轴上塞满了我数据列表中的数字
- python - 如何在两个不同的路径中添加相同的属性 - odoo xpath
- android - Android Kotlin:片段未附加到上下文
- django - 无法更改 django auth url 命名空间
- python - 使用 selenium python 选择元素
- flutter - 如何制作类似于 Google News 的 SliverAppBar?
- javascript - 您可以检查文本中的 HTML 实体,并且可以将 Math.PI 函数保存在变量中吗?
- pandas - Python:如何在数据框列值中进行条件舍入?
- php - 如何在现有的 wordpress 网站中使用 Codeigniter?
- reactjs - 样式化组件下拉菜单使父级:悬停颜色保持在子级:悬停