当前位置:编程学习 > asp >>

IE4的模式对话框设计

答案:

    在 开 发 Intranet Web Mis 的 过 程 中 , 大 家 发 现 如 果 运 用 模 式 对 话 框, 程 序 的 流 程 将 更 为 清 楚 。 在 某 些 情 况 , 用 户 必 须进 行 某 些 操 作 之 后 , 才 能 继 续 后 面 的 事 情 。 比 如 :某 些 安 全 性 要 求 比 较 高 的 操 作 , 需 要 操 作 者 输 入 口令 以 确 认 。 如 果 实 现 了 模 式 对 话 框 , 那 么 一 个 WEB 程序 看 上 去 更 象 一 个 VB 或 DELPHI 开 发 的 应用 程 序 。 结 合 运 用 ASP 和 DHTML , 可 以 实 现 模 式 对 话框 。

    本 文 以 msgbox 的 实 现 为 例 。 客 户 端 VBScript 有 一 个 函数 Msgbox() ( 以 及 衍 生 出 来 的 Alert()、confirm() ) 。 我 们 常 常 需要 msgbox 显 示 一 些 简 要 提 示 或 是 简 单 选 择 , 但 是 遗 憾 的是 , Msgbox 功 能 有 巨 大 缺 陷 。如 果 是 中 文 句 子 , 在 西 文系 统 下 , 只 怕 只 能 看 到 一 串 “ ??? ” 即 使 安 装 了 中文 平 台 ( 如 南 极 星 ) 。 客 户 端 Jscript 类 似 的 函 数Alert() 和 confirm() , 当 然 也 存 在 着 相 同 的 问 题 。
    幸 好 , 在 微软 DHTML 说 明 书 找 到 了 一 个 函 数 : showModalDialog() 。 结 合 DHTML 和 ASP 便 可 实 现 MsgBox 的 功 能 , 并 且 无 操 作 平 台 CODEPAGE 不 同 的 烦 恼 。

<<<< showModalDialog 语 法 >>>>

    variant = object.showModalDialog(sURL [, vArguments [, sFeatures]])


参数
 描述
 
sURL
 指 定要 装 载 和 显 示 的 文 件 的 URL 地 址
 
vArguments
 可 选 .  Variant 变 量 在 显 示 文 件 时 设 定 的 参 数 . 这 个 参 数 可以 传 送 包 括 数 组 在 内 的 数  据   对 话 框 通 过 访问 window 对 象 的 dialogArguments 属 性 , 来 获 得 这 些 属 性 。 ( 注意 : 通 过 A S P 文 件 后 面 加 ? , 可 以 向 ASP 发 送 参 数 )  
 
sFeatures
 可 选。 指 定 对 话 框 窗 体 的 参 数 , 可 有 下 列 内 容 。

语 法
 描 述
 
dialogWidth:number
 窗 口 宽 度
 
dialogHeight:number
 窗 口 高 度
 
dialogTop:number
 窗 口 上 部 坐标
 
dialogLeft:number
 窗 口 右 部 坐标
 
center:{yes | no | 1 | 0 }
 是否居中(缺省为yes)
 
 

<<<< 以 下 为 msg.asp 源 码 >>>>

    <%@ LANGUAGE="VBSCRIPT" %>
    <%
    dim title
    dim msg
    dim itype
    title=request("title")
    msg=request("msg")
    itype=request("type")
    %>
   
    <html>
    <head>
    <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
    <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80">
    <title><%=title%></title>
    </head>

    <body language="javascript" onload="window.returnValue=0" topmargin="0" leftmargin="0" bgcolor="#000000" text="#FFFF00">

    <table border="0" cellpadding="0" width="100%" cellspacing="0">
    <tr>
    <td width="100%"><p align="center"><br><%=msg%><br>
    <br>
    <%if itype=0 then
         response.write "<input type='button' value='确定' name='cmdOk' onclick='window.returnValue=1;window.close()'>"
      elseif itype=1 then
        response.write "<input type='button' value='确 定' name='cmdOk' onclick='window.returnValue=1;window.close()'>&nbsp;&nbsp;"
        response.write "<input type='button' value='取 消' name='cmdCANCEL' onclick='window.returnValue=0;window.close()'>"
    elseif itype=2 then
        response.write "<input type='button' value=' 是 ' name='cmdYes' onclick='window.returnValue=1;window.close()'>&nbsp;&nbsp;"
        response.write "<input type='button' value=' 否 ' name='cmdNo' onclick='window.returnValue=0;window.close()'>"
    end if%>
    </td>
    </tr>
    </table>
    </body>
    </html>


<<<< 调 用 范 例 >>>>

    <html>

    <head>
    <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
    <meta HTTP-EQUIV="Content-Type" content="text/html;
     charset=gb_2312-80">
    <title>Document Title</title>
    </head>
    <script langauge="javascript">
    function message(title,msg,type)
    {
    var ret=0;
    ret=showModalDialog(
    "msg.asp?itle="+title+"&msg="+msg+"&type="+type,
    "","dialogWidth:30;dialogHeight:8;center:1")
    return ret
    }
    // 此 函 数 将 调 用 方 法 简 化 , 使 它 在 调 用 方 法 上 看起 来 更 象 系 统 的 MSGBOX
    </script>
    <body>
    <form method="POST" action="../_vti_bin/shtml.dll/msg/test.asp" webbot-action="--WEBBOT-SELF--">
    <p><input type="button" value="test" name="cmdTest1" language="javascript"
        onclick="alert(message('title','message is here',2))"></p>
    </form>

    </body>
    </html>


 

上一个:获得ASP的中文日期字符串
下一个:ASP与ADO在Web数据库查询中的应用

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,