gpt4 book ai didi

c# - 如何识别 Page_Load 中的回发事件

转载 作者:太空狗 更新时间:2023-10-29 23:12:07 26 4
gpt4 key购买 nike

我们有一些遗留代码需要在 Page_Load 中识别哪个事件导致了回发。目前这是通过像这样检查请求数据来实现的...

if (Request.Form["__EVENTTARGET"] != null
&& (Request.Form["__EVENTTARGET"].IndexOf("BaseGrid") > -1//BaseGrid 事件(例如排序)
|| Request.Form["btnSave"] != null//保存按钮

这非常难看,如果有人重命名控件,它就会中断。有更好的方法吗?

重写每个页面以使其不需要在 Page_Load 中检查这一点目前不是一个选项。

最佳答案

这应该让您控制导致回发的控件:

public static Control GetPostBackControl(Page page)
{
Control control = null;

string ctrlname = page.Request.Params.Get("__EVENTTARGET");
if (ctrlname != null && ctrlname != string.Empty)
{
control = page.FindControl(ctrlname);
}
else
{
foreach (string ctl in page.Request.Form)
{
Control c = page.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
control = c;
break;
}
}
}
return control;
}

在此页面上阅读更多相关信息: http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx

关于c# - 如何识别 Page_Load 中的回发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com