我的 asp.net 页面上有两个单选按钮,AutoPostBack = True
当我单击其中任何一个时,它们都设置了一个标志SaveData=False
但是,当我单击它们时,首先发生 page_load 事件,因此该page_load
事件会保存数据,然后radiobutton_OnCheckedChanged
触发该事件。
我怎样才能触发OnCheckedChanged
之前的page_load
事件?
我的 asp.net 页面上有两个单选按钮,AutoPostBack = True
当我单击其中任何一个时,它们都设置了一个标志SaveData=False
但是,当我单击它们时,首先发生 page_load 事件,因此该page_load
事件会保存数据,然后radiobutton_OnCheckedChanged
触发该事件。
我怎样才能触发OnCheckedChanged
之前的page_load
事件?
你不能。
您需要阅读页面生命周期。
你不能触发OnCheckedChanged
之前,radiobutton_OnCheckedChanged
因为那是正常的页面生命周期。
您可以检查 Page_Load 是否Page.IsPostBack
为真,然后不保存(或保存)数据。
Troy - 你必须在客户端(javascript / jquery)处理这个问题。您的 AutoPostBack = True 会导致表单执行调用页面加载的回发。这一切都与页面生命周期和服务器端事件的工作方式有关。
在触发事件之前,您不能总是需要加载页面。这与控件创建、视图状态管理、控件状态等有关。
你想做的Page_Load
事情是这样的:
if(!this.IsPostBack)
{
// Do the stuff you want on the initial page load
}
单击单选按钮时您不if {}
希望发生的任何事情,将其放在块内。 IsPostBack
表示页面正在处理回发事件,当您单击其中一个单选按钮时会发生这种情况。
你can't change
的order/sequence
事件处理程序执行。但是,您可以将 page_load 中的代码移动到另一个event handler
.