zoukankan      html  css  js  c++  java
  • 模式对话框

    主页面 PageBase.aspx.cs 中的代码

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!this.IsPostBack)
    {
    //addBtn.Attributes.Add("onclick", "javascript:ShowModalDialog('OvertimeDlog.aspx','395px','250px')");
    //delBtn.Attributes.Add("onclick", "javascript:ShowModalDialog('OvertimeDlog.aspx','395px','250px')");
    this.addBtn.Attributes.Add("onclick", "javascript:OpenOvertimeDlog('add',540,400)"); // 增加 Button
    this.updateBtn.Attributes.Add("onclick", "javascript:OpenOvertimeDlog('up',540,400)"); // 修改 Button
    }
    }


    主页面 PageBase.aspx 中的代码

    <head runat="server">
    <title>无标题页</title>
    <script type ="text/javascript" language = "javascript">
    function OpenOvertimeDlog(frmWin,width,height)
    {
    var me;
    var action;
    action = frmWin;
    // 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
    me = "OvertimeDlog.aspx?action="+action+"";
    // 显示对话框。
    window.showModalDialog(me,null,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no')
    }
    </script>
    </head>


    弹出对话框页面 OpenDlog.aspx 中的代码

    <head runat="server">
    <title>无标题页</title>
    <!-- 防止重新打开页面形式的对话框 -->
    <base target="_self" />
    </head>


    弹出对话框页面 OpenDlog.aspx.cs 中的代码

    OpenDlog.aspx.cs
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    //获得传递的 action 的值;
    string getRequest = Request["action"].ToString();
    }
    }

    对话框页面 OpenDlog.aspx.cs 关闭后,执行更新操作(在对话框的关闭事件中加入):

    Response.Write("<script language='javascript'>");
    Response.Write("window.close()");
    Response.Write("</script>");

    引用下面文章

    asp中的模态对话框

    具体的要求是:在选择页面上的“添加”按钮,弹出模态对话框,在对话框中添加记录后,选择“确定”按钮,关闭对话框,更新主页面表格的数据。

    网上关于模态对话框的讨论有很多,试了一天,发现一个比较好的解决方法:

    1、显示对话框:
    javascript脚本文件中加入:
    function OpenEditWin(frmWin,width,height)
    {
    var me;
    // 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
    me = window;
    // 显示对话框。
    window.showModalDialog(frmWin,me,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no')
    }
    在C#中调用 :
    cmdAdd.Attributes.Add("onclick","javascript:OpenEditWin('" + Session["showForm"] + "',540,400)");
    很多方法是用 Response.Write或者RegisterStartupScript 来实现,但是都存在问题,如显示对话框时页面是空白、刷新页面的时候弹出对话框等。
    在对话框中加入jscript脚本
    function1 onsubmit() // 强制本窗口提交
    {
    document.Form1.target="_self";
    }
    2、关闭对话框
    Response.Write("<script language='javascript'>");
    Response.Write("window.close()");
    Response.Write("</script>");

    3、对话框关闭后,执行更新操作
    在对话框的关闭事件中加入:
    Response.Write("<script language='javascript'>");
    Response.Write("window.close()");
    Response.Write("</script>");
    4、更新主页面中的表格数据。
    在“添加”按钮的处理方法中,添加表格更新的代码。

    ASP.NET使用弹出窗口(对话框)的体会

    从整理这篇文章的目的,在于记录前一段使用弹出窗口的经验,同时结合对一些资料的阅读,总结弹出窗口使用方法。
    首先描述一下需求:在信息发布系统中,信息的一个字段信息为“栏目”,需要从多级栏目中选择出一个栏目发布文章。考虑到用户界面的美观和操作的方便,决定在新信息发布页面中放置一个Button,用户点击该Button后,弹出一个显示栏目树的窗口,用户可在该窗口中选择栏目。
    这样就引出了本文要讨论的问题:如何弹出窗口?如何在父窗口和弹出窗口之间传递信息?
    在回答这两个问题之前,首先需要指出,目前有三种方法可以弹出窗口(对话框),它们分别是:

    • window.open方法
    • 无模式对话框
    • 有模式对话框

    如何在这三种方法中做出选择、如何对后两种方法做出前面两个问题的回答,这在文后所附的文章中都有介绍。所以,这里主要针对window.open方法做出回答。
    下面是一个使用window.open弹出窗口的简单的例子:

    <script>
    function open_cate()
    {
    window.open("OpenUp.aspx","","toolbar=0,location=0,directories=0,status=0,
    menubar=0,scrollbars=1,resizable=0,left=200,top=100,width=250,height=400");

    }
    </script>

    从代码中可以看出,我们可以对弹出窗口的诸多属性进行设置。如果我们想要在点击一个Button时弹出窗口,值需要在该Button的OnClick时间中调用该JavaScript函数即可。

    解决了如何弹出窗口的问题之后,下面讨论如何在页面之间传递信息。

    父窗口向弹出窗口传递信息

    这里我采用的办法是在URL中拼接参数传递信息。window.open的第一个参数为URL,我们可以把参数加在URL后,例如'OpenUp.aspx?parm1=abc&parm2=<%=serversideparm%>'。这样,只需在弹出窗口QueryString到这些参数,就实现了动态向弹出窗口传递信息。

    将弹出窗口的信息传回父窗口

    使用弹出传口的目的主要是为了同用户的交互,所以如何在父页面中得到用户对弹出窗口的操作结果是非常重要的。其实这里实现的方法也很简单,同样是通过JavaScript:通过window.opener得到父窗口的window对象,就可以对父窗口进行操作,比如对某个TextBox设值。

    引用:http://apps.hi.baidu.com/share/detail/6525108

    爱过知情重,醉过知酒浓
  • 相关阅读:
    Mac 下安装Ant
    MAMP 10.10下启动报错解决方案
    [转]常用iOS图片处理方法
    Mac下Android SDK更新不了的解决办法
    细说23+1种设计模式
    mysql应该了解的知识点
    java快排思想
    简介一下 i++和++i&&i=i+i,i+=1;的区别
    对int类型的数据,如何让获取长度
    第一次写博客
  • 原文地址:https://www.cnblogs.com/huanhuan86/p/2400144.html
Copyright © 2011-2022 走看看