• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.net弹出消息对话框的方法!

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

【原理】

在页面上放置一隐藏控件,并在页面最后放上一段脚本代码,脚本代码检测隐藏控件的value是否为空,若不为空则弹出对话框显示信息,否则什么也不做。
后台代码在需要的时候修改隐藏控件的value,这样当页面传到用户那时,最后的脚本代码将执行并弹出对话框。
 
【注意事项】
1.         隐藏控件必须是HTML控件,否则javascript无法找到。
2.         后台代码要修改隐藏控件的值,隐藏控件自然得加上runat=”server” 标记。
3.         在弹出对话框后,记得把隐藏控件的value置空,否则刷新的时候又会弹出来了。
4.         脚本代码一定得放在隐藏控件的后面,否则同样找不到。
 
【实现】
页面代码(只列出body)
<body MS_POSITIONING="GridLayout">
              <form >
                     <asp:TextBox ></asp:TextBox>
                     <asp:Button ></asp:Button>
<INPUT >à
              </form>
              <script language=javascript>
                     if( document.all("passTxt").value!="" )
                     {
                            alert( document.all("passTxt").value );
                            document.all("passTxt").value=""; //这句可不能掉哟!
                     }
              </script>
       </body>
后台代码(只列出Button1的响应事件)
private void Button1_Click(object sender, System.EventArgs e)
         {
              passTxt.Value = manuInput.Text;
         }
【效果】
 
【补充说明】
其实这个方法很简单,不过却很有效,你可以写一个函数showDialog(string str),然后在后台代码中任何需要的地方调用以弹出对话框。
此外,你还可以把alert换成showModelDialog(),以弹出功能更丰富,界面更漂亮的窗口。
最后,必须得说明的是,这个方法的思想可以用来在脚本和后台代码之间传递信息,我在我的web application中就是这样做的,效果很好。
我们在ASP.NET程序的开发过程中,常常需要向用户给出提示信息,比如是否“操作成功”,“确定”还是“取消”操作。
   
    (1) 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,我们采用在按钮中添加属性来完成:
    例:
    public System.Web.UI.WebControls.Button btnDelRow;
    btnDelRow.Attributes.Add("onclick", "return confirm('确定要删吗?');");

 (2)点击页面上的链接,弹出一个对话框提示是“确定”还是“取消”操作,可在Page_Load()事件中,给希望给出确认提示的按钮增加属性:
    例:
    Link.Attributes.Add("onclick", "return confirm('你要执行这个操作吗?');");

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

    (4)允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块:
    public virtual void RegisterStartupScript(string key,string script);   
    例:
    if(!this.IsStartupScriptRegistered("hello"))
    this.RegisterStartupScript("hello","<script>alert('你好!')</script>");  

 

弹出“确定”对话框:
Response.Write("<Script Language=JavaScript>alert('消息!');</Script>");

弹出“确定”对话框,点击后跳转页面:
Response.Write("<Script Language=JavaScript>alert('消息!');window.navigate('../index.aspx');</Script>");

弹出“确定”和“取消”对话框,点击“确定”后执行相关操作:
方法一:在Page_Load事件中,写入Button1.Attributes["onClick"]="javascript:return confirm('你确认要删除吗?');" ,然后在Button1_OnClick事件中写入您的执行代码。
方法二:直接在Button1_OnClik事件中写入
Response.Write("<Script Language=JavaScript>if(confirm('你确认要删除吗?')){window.navigate('doDelete.aspx');} </Script>"); 方法二需要跳转到另一个页面执行操作,比方法一稍繁琐些,不过怎样用还看具体情况。

收集到的。用具类

using System;


/// <summary>
/// Alert 的摘要说明。
/// </summary>
public class Alert
{
 public static void ShowAlert(string message)
 {
        if(message==null)
            message = "";
  //ljj
  //2005-12-9
  message=message.Replace("  ","\"");
  System.Web.HttpContext.Current.Response.Write("<script>alert('"+message+"');</script>");
 }
 public static void ShowAlert(string message,string url)
 {
        if(message==null)
            message = "";
        message = message.Replace("  ", "\"");
  System.Web.HttpContext.Current.Response.Write("<script>alert(\""+message+"\");location='"+url+"';</script>");
 }
    public static void ShowConfirmAlert(string message, string confirmurl, string cancelurl)
    {
        if (message == null)
            message = "";
        message = message.Replace("  ", "\"");
        System.Web.HttpContext.Current.Response.Write("<script Language=Javascript>if( confirm('" + message + "') ) {document.location.href='" + confirmurl + "'; } else { document.location.href='" + cancelurl + "' }</script>");
    }
    public static void ShowConfirmAlert(string message, string confirmurl)
    {
        if (message == null)
            message = "";
        message = message.Replace("  ", "\"");
        System.Web.HttpContext.Current.Response.Write("<script Language=Javascript>if( confirm('" + message + "') ) {document.location.href='" + confirmurl + "'; } else { window.history.back(); }</script>");
    }
    public static void Redirect(string url)
 {// 
  //
  if(url==null||url.Length<1)
   ShowAlert("重定向地址不能为空");
  else
     System.Web.HttpContext.Current.Response.Write("<script>location='"+url+"';</script>");
 }
 public static void SSOLoginRedirect(string url)
 {
   Redirect(url);
//   if(url==null||url.Length<1)
//    ShowAlert("重定向地址不能为空");
//   else
//    System.Web.HttpContext.Current.Response.Write("<script>if(window.parent!=window) window.parent.location=window.location; location='"+url+"';</script>");
 
 }
    public static void ShowAlert(string message,string url,bool IsRedirect)
    {
       
        if(message==null)
            message = "";
        if(IsRedirect)
            ShowAlert(message,url);
        else
            ShowAlert(message);
    }
}




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Handle requests with controllers in ASP.NET Core MVC(转发)发布时间:2022-07-10
下一篇:
asp.net各种视频格式转换为flv格式代码发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap