0

我的 asp.net 页面上有两个单选按钮,AutoPostBack = True
当我单击其中任何一个时,它们都设置了一个标志SaveData=False

但是,当我单击它们时,首先发生 page_load 事件,因此该page_load事件会保存数据,然后radiobutton_OnCheckedChanged触发该事件。

我怎样才能触发OnCheckedChanged之前的page_load事件?

4

5 回答 5

2

你不能。

您需要阅读页面生命周期

于 2011-10-07T19:14:48.583 回答
1

你不能触发OnCheckedChanged之前,radiobutton_OnCheckedChanged 因为那是正常的页面生命周期。

您可以检查 Page_Load 是否Page.IsPostBack为真,然后不保存(或保存)数据。

于 2011-10-07T19:15:46.680 回答
1

Troy - 你必须在客户端(javascript / jquery)处理这个问题。您的 AutoPostBack = True 会导致表单执行调用页面加载的回发。这一切都与页面生命周期和服务器端事件的工作方式有关。

于 2011-10-07T19:16:17.457 回答
0

在触发事件之前,您不能总是需要加载页面。这与控件创建、视图状态管理、控件状态等有关。

你想做的Page_Load事情是这样的:

if(!this.IsPostBack) 
{
   // Do the stuff you want on the initial page load
}

单击单选按钮时您if {}希望发生的任何事情,将其放在块内。 IsPostBack表示页面正在处理回发事件,当您单击其中一个单选按钮时会发生这种情况。

于 2011-10-07T19:15:34.210 回答
0

can't changeorder/sequence事件处理程序执行。但是,您可以将 page_load 中的代码移动到另一个event handler.

于 2011-10-08T02:15:49.830 回答