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

前端技术 2023/08/09 .NET

在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);

本文地址:https://www.stayed.cn/item/751

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。