当前位置: 首页 > news >正文

将警报消息改为吐司消息

alert警报信息,用户需要去点击确定,警报提示框才关闭。
而confirm提示框。某些操作警报给用户确认,是否继续操作。必须让用户确认或取消。

写些示例来说明,
2026-05-06_10-32-17

2026-05-06_10-32-17

 <table style="width: 65%;"><tr><td>HTML Button</td><td>HTML Button</td><td>Server Button</td><td>Server Button</td></tr><tr><td><input id="ButtonHtmlAlertButton" type="button" value="alert button" onclick="alertbutton_click();" /></td><td><input id="ButtonHtmlConfirmButton" type="button" value="confirm button" onclick="confirmbutton_click();" /></td><td><asp:Button ID="ButtonServerAlertButton" runat="server" Text="Alert Button" OnClick="ButtonServerAlertButton_Click" /></td><td><asp:Button ID="ButtonServerConfirmButton" runat="server" Text="Confirm Button" OnClick="ButtonServerConfirmButton_Click" /></td></tr></table>
View Code

 

2026-05-06_10-35-34

 

<script type="text/javascript">function alertbutton_click() {alert("hi 点击了html alert按钮。");}function confirmbutton_click() {if (confirm("确认操作继续,确认后状态无法退回。") == true)return true;elsereturn false;}
</script>
View Code

 

Server Button cs代码,
2026-05-06_10-40-15

 protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){Data_Binding();}this.ButtonServerConfirmButton.Attributes["OnClick"] = "return confirm('确认操作继续,确认后状态无法退回。')";}protected void ButtonServerAlertButton_Click(object sender, EventArgs e){string message = "Hi 点击Alert服务按钮。";AlertMessage(message);}protected void ButtonServerConfirmButton_Click(object sender, EventArgs e){}private void AlertMessage(string message){System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.Append("<script type = 'text/javascript'>");sb.Append("window.onload=function(){");sb.Append("alert('");sb.Append(message);sb.Append("')};");sb.Append("</script>");ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), sb.ToString(), false);}
View Code

 

33

 

Confirm Button上面有提及,保留其必须用户点击。

为提示效率,减少用户点击鼠标操作频率。我们把这些Alert信息改为吐司信息。
先修改html alert button功能,
2026-05-06_11-34-40

 function alertbutton_click() {/* alert("hi 点击了html alert按钮。");*/showMessage("hi 点击了html alert按钮。", false);}//function showMessage(msg, isError) {//    let toast = document.getElementById('dynamicToast');//    if (!toast) {//        toast = document.createElement('div');//        toast.id = 'dynamicToast';//        toast.style.cssText = `//        position: fixed; top: 20px; left: 50%; transform: translateX(-50%);//        background: #333; color: #fff; padding: 8px 16px; border-radius: 4px;//        z-index: 10000; font-size: 14px; opacity: 0; transition: opacity 0.2s;//        pointer-events: none; font-family: sans-serif;//    `;//        document.body.appendChild(toast);//    }//    toast.textContent = msg;//    toast.style.backgroundColor = isError ? '#d9534f' : '#5cb85c';//    toast.style.opacity = '1';//    setTimeout(() => { toast.style.opacity = '0'; }, 2000);//}
View Code


有在js代码中,添加一个方法,showMessage(msg,IsError)。
然后在alertbutton_click事件中,把
alert("hi 点击了html alert按钮。");
修改为
showMessage("hi 点击了html alert按钮。", false);

这样子,警报信息将在页面顶部呈现2000毫秒自动消失。
显示时长,可自行修改setTimeout值。

如果你项目中,多处页面共用这个功能,可以把showMessage写成一个js库,页面需要用到的地方,引用即可。
如下面javascript代码,另存成一个js文件,放在你的项目中。
2026-05-06_11-20-56

 

(function () {let toast = null;function ensureToast() {if (!toast) {toast = document.createElement('div');toast.id = 'dynamicToast';toast.style.cssText = `position: fixed; top: 20px; left: 50%; transform: translateX(-50%);background: #333; color: #fff; padding: 8px 16px; border-radius: 4px;z-index: 10000; font-size: 14px; opacity: 0; transition: opacity 0.2s;pointer-events: none; font-family: sans-serif;`;document.body.appendChild(toast);}}window.showMessage = function (msg, isError) {ensureToast();toast.textContent = msg;toast.style.backgroundColor = isError ? '#d9534c' : '#5cb85c';toast.style.opacity = '1';clearTimeout(window.toastTimeout);window.toastTimeout = setTimeout(() => {toast.style.opacity = '0';}, 2000);};
})();
View Code

 

参考下面代码,修改程序,
2026-05-06_11-45-22

 


接下来,我们修改Server Alert Button功能,希望在C#端应用到javascript的showMessage()方法。

写成一个静态方法,
2026-05-06_16-29-08

 

namespace Insus.NET
{public static class ToastHelper{       public static void ShowMessage(Page page, string message, bool isError = false, Control updatePanel = null){//  string script = $"showMessage('{EscapeJsString(message)}', {isError.ToString().ToLower()});";   //C# 6.0 or above.string script = string.Format("showMessage('{0}', {1});", EscapeJsString(message), isError.ToString().ToLower());// 尝试获取 ScriptManagerScriptManager sm = ScriptManager.GetCurrent(page);if (sm != null && updatePanel != null){// 有 ScriptManager 且指定了 UpdatePanel,注册到该 UpdatePanel 范围内ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), Guid.NewGuid().ToString(), script, true);}else if (sm != null)  {// 有 ScriptManager 但未指定 UpdatePanel,注册到页面(适用于普通异步回发)ScriptManager.RegisterStartupScript(page, page.GetType(), Guid.NewGuid().ToString(), script, true);}else{// 没有 ScriptManager,使用传统方式(适用于普通回发)page.ClientScript.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), script, true);}}private static string EscapeJsString(string s){if (string.IsNullOrEmpty(s)) return string.Empty;return System.Web.HttpUtility.JavaScriptStringEncode(s);}}
}
View Code

 修改代码,
2026-05-06_17-17-11

 

 最后看看alert按钮呈现效果(留意绿色欧警报信息),
55

 

 


 

http://www.jsqmd.com/news/765103/

相关文章:

  • Taotoken的审计日志与访问控制如何保障企业API调用安全
  • 2025届必备的AI论文平台实测分析
  • CN Bio微流控器官芯片系统实验分享:用肝脏MPS进行寡核苷酸递送与基因敲低研究
  • 江西安羿环境科技:红谷滩专业的灭蟑螂选哪家 - LYL仔仔
  • Go 如何用PageConvert处理分页查询?
  • 中效过滤器厂家哪家好?2026年实力厂商推荐 - 品牌排行榜
  • 2026年崇明装修难题来袭,哪家靠谱装修公司能解你的心头之忧? - 速递信息
  • 保姆级教程:用Node.js的mqtt库连接阿里云IoT平台(含完整代码)
  • 当密码遗忘时:如何用开源工具优雅地找回加密压缩包的访问权
  • 从信号流视角拆解:RK628D如何让RK3568“看见”HDMI画面(调试命令全解析)
  • novel-downloader:在404时代守护你的阅读记忆
  • Claude Agent Teams 实战手册:从零开始搭建多 Agent 系统
  • Mac Mouse Fix终极指南:让普通鼠标在macOS上超越苹果触控板体验
  • 2026精准喂料设备厂家推荐:失重称、真空上料/集中供料系统、特殊喂料机选品指南 - 深度智识库
  • 从协议解析到动作执行:拆解一个现代DPI检测引擎(以H3C为例)
  • IZON外泌体纯化与纳米颗粒表征技术解析:SEC外泌体分离、TRPS单颗粒分析与LNP质控方案
  • 电动升降桌厂家实测评测:四大品牌核心性能全维度对比 - 奔跑123
  • Spatial-TTT:测试时训练在视觉空间智能中的应用
  • 从 305 GB 到 7.4 GB:大模型 KVCache 架构演进全景 - -银光
  • 上海鸿沄高空作业:上海外墙防水保温施工推荐哪几家 - LYL仔仔
  • 别再只调颜色了!深入Unity Slider的Rect Transform与锚点,打造自适应UI进度条
  • 2026年5月四川冷库/冻库/保鲜库/冷藏库/低温库厂家解析,选四川南建孚斯特 - 2026年企业推荐榜
  • Oracle数据库服务器端编程介绍
  • 2025届毕业生推荐的十大AI学术神器实测分析
  • 2026西宁婚纱摄影客评数据分析:10万+真实评价告诉你,这家品牌口碑最稳 - 江湖评测
  • 避坑指南:在Vue3项目中用Cesium加载KML/KMZ数据时,你可能遇到的3个问题
  • 2026年三元催化器厂家口碑排行榜,排名前十推荐 - 速递信息
  • 高含量熊胆粉哪个性价比高?2026大众护肝熊胆粉排名,肝虚火旺人群喝滋阴降火 - 博客万
  • 使用 Taotoken 为 Ubuntu 上的 Node 应用集成多模型 AI 能力
  • 大语言模型评估新方法:TrustJudge框架解析