停止在Web表单上加载页面

大亚军

新成员
已加入
2014年10月1日
留言内容
4
编程经验
1-3
大家好,

我正在Visual Studio中使用asp.net和C#构建我的第一个网页。我注意到,无论何时单击任何按钮,整个页面都会重新加载,这将重置所有变量。有人可以为我指出正确的方向以进行研究以阻止此事件发生吗?谢谢你。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+
如果您不希望回发,则可能应该使用“ HTML输入”按钮而不是服务器控制按钮。如果出于某种原因需要将其用作服务器控制按钮,则可以"return false"从其OnClick脚本(OnClientClick)。
 

大亚军

新成员
已加入
2014年10月1日
留言内容
4
编程经验
1-3
如果您不希望回发,则可能应该使用“ HTML输入”按钮而不是服务器控制按钮。如果出于某种原因需要将其用作服务器控制按钮,则可以"return false"从其OnClick脚本(OnClientClick)。


它确实需要在服务器上运行,并且返回false似乎会停止所有将要执行的c#代码,从本质上使它成为一个不执行任何操作的按钮。
 

狂暴风暴

知名会员
已加入
2014年8月6日
留言内容
85
地点
南非鲁德普特
编程经验
10+
您知道IsPostBack标志吗?

if (!IsPostBack)
{
              // initialization
    // clear textboxes, populate dropdownlists etc
}
else
{
    // don't touch controls
}

您可以在Page_Load()中使用它。请注意,这不会停止回发。
 

大亚军

新成员
已加入
2014年10月1日
留言内容
4
编程经验
1-3
您知道IsPostBack标志吗?

if (!IsPostBack)
{
              // initialization
    // clear textboxes, populate dropdownlists etc
}
else
{
    // don't touch controls
}

您可以在Page_Load()中使用它。请注意,这不会停止回发。


感谢您的回复,是的,我知道这一点。我的问题是每次页面重新加载时都会清除变量。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+
它确实需要在服务器上运行,并且返回false似乎会停止所有将要执行的c#代码,从本质上使它成为一个不执行任何操作的按钮。
C#代码在回发期间在服务器上运行,回发是通过状态管理重置页面并重新创建页面时进行的,这通常是ASP.Net的工作方式。
我猜解决方案是使用静态变量
有很多状态管理选项,看看: ASP.NET 状态管理概述
另外,Ajax和UpdatePanel允许部分页面回发,以及用于在不回发的情况下调用某些服务器代码的客户端回叫: 在ASP.NET网页中以编程方式实现客户端回调而无需回发
 
最佳 底部