欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net操作javascript:confirm返回值的两种方式

程序员文章站 2024-02-24 08:29:23
在asp.net中使用confirm可以分为两种: 1.没有使用ajax,confirm会引起也面刷新 2.使用了ajax,不会刷新 a.没有使用ajax,可以用st...

在asp.net中使用confirm可以分为两种:

1.没有使用ajax,confirm会引起也面刷新

2.使用了ajax,不会刷新

a.没有使用ajax,可以用stringbuilder来完成.

(一)asp.net用stringbuilder控制后台操作javascript:confirm返回值,此方法比较烦琐

1.后台启动事件

stringbuilder sb = new stringbuilder();
sb.append("<script language='javascript'>");
sb.append("var val=window.confirm('are you sure!');");
sb.append("window.document.getelementbyid('textbox1').value=val;");
sb.append("__dopostback('textbox1','');");
sb.append("</script>");
this.registerstartupscript(system.guid.newguid().tostring(), sb.tostring());

2.前台代码:

复制代码 代码如下:

<asp:textbox id="textbox1" runat="server" autopostback="true" ontextchanged="textbox1_textchanged"></asp:textbox>

3.文本框ontextchanged="textbox1_textchanged"的后台事件代码
protected void textbox1_textchanged(object sender, eventargs e)
{
if (((textbox)(sender)).text != "")
{
if (((textbox)(sender)).text.toupper() == "true")
{
//确定后执行另一个事件/方法 
}
if (((textbox)(sender)).text.toupper() == "false")
{
//取消后执行另一个事件/方法 

}

} 
}

该事件也可以写成其它的方法驱动。只是判断texbox1的值。
注意:该事件由autopostback="true"引起页面刷新,全局变量丢失,最好使用session变量来保存需要存储的值。

(二)通过前台javascript来确定后台执行的方法,也就多了个onclientclick事件此方法最简单

前台按钮事件

复制代码 代码如下:

<asp:button id="bt_deletebutton" runat="server" onclick="bt_deletebutton_click" onclientclick="if(confirm('调用后台bt_deletebutton_click事件,确定继续吗?')){return true;}else{return false;}" text="删除" visible="false" />

就在页面上添加

a.onclick后台事件,

b.onclientclick事件,javascript的confirm,选择 确定后执行 onclick后台是事件bt_deletebutton_click

b:使用了ajax控件的页面

复制代码 代码如下:

scriptmanager.registerstartupscript(updatepanel1, updatepanel1.gettype(), "", "alert('提示');if(confirm('是否继续执行yes)){alert('本页面继续添加')}else{window.open('productmanage.aspx','_blank');}", true);