ASP.NET弹出一个对话框

来源:互联网 发布:burberry围巾 知乎 编辑:程序博客网 时间:2024/04/30 16:35

我们在ASP.NET程序的开发过程中,常常需要向用户给出提示信息,比如是否“操作成功”,“确定”还是“取消”操作。
  
    (1) 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,我们采用在按钮中添加属性来完成:
举例如下:
    public System.Web.UI.WebControls.Button btnDelRow;
    btnDelRow.Attributes.Add("onclick", "return confirm('确定要删吗?');");

    (2) 对于页面完成一个操作后,弹出一个对话框提示是否“操作成功”。
举例如下:
    Response.Write("<script>alert('删除成功!')</script>");

    (3)允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块:
    public virtual void RegisterStartupScript(string key,string script);

    举例如下:
    if(!this.IsStartupScriptRegistered("hello"))
        this.RegisterStartupScript("hello","<script>alert('你好!')</script>"); 

############################################
版权声明:
文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必以明文标注文章原始出处及本声明
http://www.opent.cn  作者:浪淘沙
############################################/

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;

namespace EC
{
    /// <summary>
    /// 信息输出通用方法
    /// </summary>
    public class MessageObject
    {       
       
        /// <summary>
        /// 一般输出
        /// </summary>
        /// <param name="str"></param>
        public static void Write(string str)
        {
            System.Web.HttpContext.Current.Response.Write(str);
        }        
        /// <summary>
        /// 显示一段自定义的输出代码
        /// </summary>
        /// <param name="MyPage"></param>
        /// <param name="strCode"></param>
        public static void ShowJS(System.Web.UI.Page MyPage, string strCode)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append(strCode.Trim());
            sb.Append("</script>");
            MyPage.Response.Write(sb.ToString());          
        }       
        /// <summary>
        /// 页面重载
        /// </summary>
        public static void Location()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append("window.location.href=window.location.href;");
            sb.Append("</script>");
            System.Web.HttpContext.Current.Response.Write(sb.ToString());

        }       
        /// <summary>
        /// 显示一个弹出窗口
        /// </summary>
        /// <param name="str"></param>
        public static void Show(string str)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append("alert(/"" + str.Trim() + "/"); /n");
            sb.Append("</script>");

            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }        
        /// <summary>
        /// 显示一个弹出窗口,并关闭当前页
        /// </summary>
        /// <param name="str"></param>
        public static void ShowClose(string str)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<script language=/"javascript/">/n");
            sb.Append("alert(/"" + str.Trim() + "/"); /n");
            sb.Append("window.close();/n");
            sb.Append("</script>/n");
            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }       
        /// <summary>
        /// 显示一个弹出窗口,并转向当前页(刷新)
        /// </summary>
        /// <param name="str"></param>
        public static void ShowLocation(string str)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append("alert(/"" + str.Trim() + "/"); /n");
            sb.Append("window.location.href=window.location.href;/n");
            sb.Append("</script>");

            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }        
        /// <summary>
        /// 显示一个弹出窗口,并转向目标页(导航)
        /// </summary>
        /// <param name="str"></param>
        /// <param name="url"></param>
        public static void ShowRedirect(string str, string url)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append("alert(/"" + str.Trim() + "/"); /n");
            sb.Append("window.location.href=/"" + url.Trim() + "/";/n");
            sb.Append("</script>");

            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }       
        /// <summary>
        /// 显示一个弹出窗口,并转向上一页
        /// </summary>
        /// <param name="str"></param>
        public static void ShowPre(string str)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append("alert(/"" + str.Trim() + "/"); /n");
            sb.Append("var p=document.referrer; /n");
            sb.Append("window.location.href=p;/n");
            sb.Append("</script>");

            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }        
        /// <summary>
        /// 重定向
        /// </summary>
        /// <param name="url"></param>
        public static void RedirectPage(string url)
        {
            string path = "http://" + System.Web.HttpContext.Current.Request.Url.Host + url;
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language=/"javascript/"> /n");
            sb.Append(string.Format("window.location.href='{0}';", @path));
            sb.Append("</script>");

            System.Web.HttpContext.Current.Response.Write(sb.ToString());
        }

       
    }
}

 

 

实践

我们也可以使用写一个类Message(名字随便取)的方法,内容如下:

using System;

namespace Common
{
 /// <summary>
 /// Message 的摘要说明。
 /// </summary>
 public class Message
 {
  public Message()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  //返回一个弹出窗口
  public static string Show(string strMsg)
  {   

      //这里0就指strMsg这东西,1就是指/这东西.
     return String.Format("<script language={1}javascript{1}>alert({1}{0}{1});</script>",strMsg,"/"");
  }  
 }
}

然后在要弹出对话框的页面上,添加一个label控件,假设命名为lblMsg,这时,后台写代码:

lblMsg.Text = Message.Show("这里写要弹出来的内容");

这样就可以实现弹出提示的效果了.注意,我的类是写在通用层中,所以还要先引用通用层:

using Common;

这个方法其实是紫色物语提供的,当时我写项目遇到这个问题,他告诉我这种方法,在此感谢他的帮助.

原创粉丝点击