这有点像 hack,但我在 jquery 对话框的关闭事件上强制回发。
close: function (event, ui) {
__doPostBack('<%=btnChange.UniqueID %>', 'refreshMe');
}
它按应有的方式工作,并引发了服务器端的点击事件(由于我试图传入“refreshMe”,因此不得不关闭 EnableEventValidation 的小麻烦)。
我想要的是能够在点击事件期间看到第二个参数('refreshMe'),这样我就可以知道回发是由 jquery 对话框关闭事件引起的。所以也许像下面这样的东西或多或少是我所希望的(但它显然不起作用)。
protected void btnChange_Click(object sender, EventArgs e) {
if (e == "refreshMe")
{
// do whatever
}
else
{
// do whatever
}
}
有什么方法可以让我做到这一点,还是我离基地很远?
谢谢您的帮助。
编辑 为了让这个场景正常工作,我必须:1)将 EnableEventValidation 设置为 false(如果它是真的,那么 ASP.NET 将抛出一个错误并基本上告诉你它无法验证请求)2)我尝试设置值使用 jquery 隐藏的 __EVENTARGUMENT,但无论出于何种原因,值“refreshMe”从未在参数中发送到服务器。我最终做的是把'refreshMe'放在_doPostBack的第二个参数中,然后它出现在服务器端的Request[“_EVENTARGUMENT”]中。