在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);
我们可能会遇到在.net后台弹出confirm对话框,然后点击确定,执行一段代码,点击取消,执行另一段代码,当然,在前台也是可以弹出confirm对话框的,但有的时候可能涉及到计算,或者取页面数据,但前台不好获取,这时候就要在后台执行这个动作了。
弹出confirm对话框我们可以这样做:
在页面上放置一个Literal控件,然后在后台赋值:
this.ltlMsg.Text = "<script language='javascript'>if(confirm('确认的消息')){ document.getElementById('cmdClose').click();}</script>";
这个看到有一个
document.getElementById('cmdClose').click();
这个就是控制流程走向的关键,其实这里是页面上放置了一个button,而且给该button定义了click事件,只不过这个button的宽度高度都是0,我们在页面上是看不到的,但它的click事件就是我们在弹出confirm对话框要做的事,当然点击取消我们可以做另一件事,无非再加一个button。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述