在 code-behind 中用字符串组出整句 js 和 confirm,
然后在字符串的 js 里面,直接调用 Button 的 click() ,
即可实现 js 直接调用 C#。
不过这是模拟的,client-server 事实上来回两次,
但用户感觉不出来。
和 ajax 真的中途拦截 confirm 选项 request 的原理不同。
http://www.dotblogs.com.tw/jimmyyu/archive/2009/06/07/8712.aspx
protected void
Button1_Click(object sender, EventArgs e)
2 {
3 //Do something before confirm
4
5 //再動態註冊一個JavaScript詢問使用者是否繼續執行,如果確定的話,就直接幫他click button
6 Page.ClientScript.RegisterStartupScript(typeof(string), "script", ")){document.getElementById('Button2').click();};",
true);
7 }
在上面这句的字符串 js 中,加入 confirm。
在这个 click(); 后面,直接调用 C# 类.方法名称(),
即可模拟,confirm 还完后,依选项,js 直接调用 C# 不同的方法。
cs中是不能与js中的confirm有所交互,只能请求前ajax判断一下是否有报表,如果ajax返回有则提示用户是否更新的confirm框,这时候用户如果点确定,则ajax过去进行覆盖操作,取消则不做任何ajax操作。
Astar说得对。