Common下MessageBox.cs

本文介绍了一种在 ASP.NET 应用中实现消息提示、确认对话框及页面跳转的方法。通过简单的代码示例展示了如何利用 ClientScript 对象注册 JavaScript 脚本来实现这些功能。

using System;
using System.Text;
namespace Common
{
 /// <summary>
 /// 显示消息提示对话框。
 /// </summary>
 public class MessageBox
 {  
  private  MessageBox()
  {   
  }

  /// <summary>
  /// 显示消息提示对话框
  /// </summary>
  /// <param name="page">当前页面指针,一般为this</param>
  /// <param name="msg">提示信息</param>
  public static void  Show(System.Web.UI.Page page,string msg)
  {           
            page.ClientScript.RegisterStartupScript(page.GetType(),"message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
  }

  /// <summary>
  /// 控件点击 消息确认提示框
  /// </summary>
  /// <param name="page">当前页面指针,一般为this</param>
  /// <param name="msg">提示信息</param>
  public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)
  {
   //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");
   Control.Attributes.Add("onclick", "return confirm('" + msg + "');") ;
  }

  /// <summary>
  /// 显示消息提示对话框,并进行页面跳转
  /// </summary>
  /// <param name="page">当前页面指针,一般为this</param>
  /// <param name="msg">提示信息</param>
  /// <param name="url">跳转的目标URL</param>
  public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)
  {   
            page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>alert('" + msg + "');window.location=/"" + url + "/"</script>");


  }
        /// <summary>
        /// 显示消息提示对话框,并进行页面跳转
        /// </summary>
        /// <param name="page">当前页面指针,一般为this</param>
        /// <param name="msg">提示信息</param>
        /// <param name="url">跳转的目标URL</param>
        public static void ShowAndRedirects(System.Web.UI.Page page, string msg, string url)
        {
            StringBuilder Builder = new StringBuilder();
            Builder.Append("<script language='javascript' defer>");
            Builder.AppendFormat("alert('{0}');", msg);
            Builder.AppendFormat("location.href='{0}'", url);
            Builder.Append("</script>");
            page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());

        }

  /// <summary>
  /// 输出自定义脚本信息
  /// </summary>
  /// <param name="page">当前页面指针,一般为this</param>
  /// <param name="script">输出脚本</param>
  public static void ResponseScript(System.Web.UI.Page page,string script)
  {
            page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>" + script + "</script>");
            
  }


 }
}

private void button3_Click(object sender, EventArgs e) { Button btn = sender as Button; btn.Enabled = false; try { DataTable dt = (DataTable)bindingSource.DataSource; // 检查是否有更改 DataTable changes = dt.GetChanges(); // 获取变更行 if (changes == null) { MessageBox.Show("没有需要保存的更改。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // 数据验证:检查库存是否合法 foreach (DataRow row in changes.Rows) { if (row.RowState == DataRowState.Deleted) continue; object stockObj = row["库存数量"]; string stockStr = Convert.ToString(stockObj); int stockValue; if (!int.TryParse(stockStr, out stockValue) || stockValue < 0) { string msg = "商品【" + row["GoodsName"].ToString() + "】的库存必须为非负整数!"; MessageBox.Show(msg, "数据错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } // === 重建 DataAdapter 用于更新(必须和 Load 时一样的映射)=== string selectSql = "SELECT ID, GoodsName, Stock AS 库存数量, Unit FROM tGoods"; OleDbDataAdapter updateAdapter = new OleDbDataAdapter(selectSql, clsDB.conn); // 设置相同的 TableMapping 和 ColumnMapping DataTableMapping map = updateAdapter.TableMappings.Add("Table", "tGoods"); map.ColumnMappings.Add("ID", "ID"); map.ColumnMappings.Add("GoodsName", "GoodsName"); map.ColumnMappings.Add("库存数量", "Stock"); map.ColumnMappings.Add("Unit", "Unit"); // 使用 CommandBuilder 自动生成 UPDATE 命令 OleDbCommandBuilder builder = new OleDbCommandBuilder(updateAdapter); builder.RefreshSchema(); // 强制刷新命令缓存 // 执行更新 updateAdapter.Update(dt); // 提交变更状态 dt.AcceptChanges(); MessageBox.Show("✅ 所有库存已成功保存!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); // 可选:重新加载确保一致性 LoadStockData(); } catch (Exception ex) { MessageBox.Show("❌ 保存失败:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { btn.Enabled = true; } }错误 1 未能找到类型或命名空间名称“DataTableMapping”(是否缺少 using 指令或程序集引用?) D:\Desktop\学习\C#\C#课设\千依零食\千依零食\StockEditForm.cs 178 17 千依零食
最新发布
12-29
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0117 “DecodeHintType”未包含“AUTO_ROTATE”的定义 QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 60 活动 错误 CS0103 当前上下文中不存在名称“InitializeComponent” QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 18 活动 错误 CS0103 当前上下文中不存在名称“listViewResults” QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 44 活动 错误 CS0103 当前上下文中不存在名称“pictureBoxPreview” QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 45 活动 错误 CS0117 “DecodeHintType”未包含“TRY_INVERTED”的定义 QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 58 活动 错误 CS1061 “BitmapLuminanceSource”未包含“BlackWhiteThreshold”的定义,并且找不到可接受第一个“BitmapLuminanceSource”类型参数的可访问扩展方法“BlackWhiteThreshold”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 72 活动 错误 CS1061 “MultiFormatReader”未包含“decodeMultiple”的定义,并且找不到可接受第一个“MultiFormatReader”类型参数的可访问扩展方法“decodeMultiple”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 78 活动 错误 CS0103 当前上下文中不存在名称“CalculateQRBoundary” QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 85 活动 错误 CS0103 当前上下文中不存在名称“listViewResults” QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\Form1.cs 92 活动
10-12
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0246 未能找到类型或命名空间名“ListBox”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 9 活动 错误 CS0246 未能找到类型或命名空间名“Button”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 6 活动 错误 CS0246 未能找到类型或命名空间名“PictureBox”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 7 活动 错误 CS0246 未能找到类型或命名空间名“Label”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 8 活动 错误 CS0246 未能找到类型或命名空间名“Label”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 10 活动 错误 CS0246 未能找到类型或命名空间名“PictureBox”(是否缺少 using 指令或程序集引用?) QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.Designer.cs 11 活动 错误 CS8957 语言版本 7.3 中的条件表达式无效,因为在“Rectangle”和“<null>”之间未找到通用类型。如需使用目标类型转换,请升级到语言版本 9.0 或更高版本。 QRDesigner E:\Visual Studio Project\QR Code v2\QR Code v2\QR Code v2\MainForm.cs 69 活动 给出修改后的完整代码
10-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值