ASP.NET 2.0 自定义模态对话框组件

在Web开发中,模态对话框是一种常见的用户界面元素,用于在不离开当前页面的情况下与用户交互。然而,JavaScript原生的弹出窗口模型面临着“弹窗拦截器”的问题。为了解决这个问题,开发了一个自定义的模态对话框组件,它适用于ASP.NET2.0。这个组件不是弹出窗口,也不是新窗口,而是出现在所有对象的顶部,并且隐藏其他对象,使得其他控件无法被点击。

这个组件的核心思想非常简单。在m控制中,有一些面板(

)和它们的z-index。打开一个透明的面板在所有元素的顶部,这样就阻止了它们被点击。然后,需要一些新的面板来显示消息框,以及一些脚本和样式来显示它们。

组件特性

这个控件有三个事件:

  • Btn1Clicked
  • Btn2Clicked
  • Btn3Clicked

有两种样式:

  • msg.MessageBoxStyle.Violet
  • msg.MessageBoxStyle.Blue

以及四种图标:

  • msg.MessageBoxIcons.Exclamation
  • msg.MessageBoxIcons.Asteriks
  • msg.MessageBoxIcons.Question
  • msg.MessageBoxIcons.None

可以通过编辑Mbox.ascx.cs中的InitializeIcon和InitializeStyle函数来编辑视觉效果。

如何使用控件

只需要将Mbox.ascx用户控件和Resources文件夹添加到项目中。然后,将用户控件拖放到Web表单中。

在default.aspx或其他文件中添加以下代码:

protected void Page_Load(object sender, EventArgs e) { // 绑定事件到消息框按钮... Mbox1.Btn1Clicked += new EventHandler(Mbox1_Btn1Clicked); Mbox1.Btn2Clicked += new EventHandler(Mbox1_Btn2Clicked); } void Mbox1_Btn2Clicked(object sender, EventArgs e) { Response.Write("2nd button clicked"); } void Mbox1_Btn1Clicked(object sender, EventArgs e) { Response.Write("1st button clicked"); }

显示方法及其重载...

protected void Button1_Click(object sender, EventArgs e) { Mbox1.Show("hede", "hodo"); } protected void Button2_Click(object sender, EventArgs e) { Mbox1.Show("My test message", "Warning", "OK", "Cancel", null); } protected void Button3_Click(object sender, EventArgs e) { Mbox1.Show("My test message", "Warning", "OK", "Cancel", null, msg.MessageBoxIcons.Exclamation); } protected void Button4_Click(object sender, EventArgs e) { Mbox1.Show("My test message", "Warning", "OK", "Cancel", "Retry", msg.MessageBoxIcons.Exclamation, msg.MessageBoxStyle.Violet); }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485