efw 对话框示例

概述

本示例展示了 efw 框架中对话框功能的完整实现,包括多种对话框类型(警告、确认、等待、预览和自定义对话框)的使用方法。efw 框架提供了简洁的 API 来创建和管理各种用户交互对话框。

核心文件

  1. 主页面: helloDialog.jsp
  2. 自定义对话框组件: helloDialog_myDialog.jsp
  3. 对话框初始化事件处理: helloDialog_init.js

功能实现

1. 对话框类型

警告对话框 (Alert)

efw.dialog.alert("I am here");

确认对话框 (Confirm)

efw.dialog.confirm(
    "测试警报。",
    {
        "": function(){ alert("我按下了“是”。"); },
        "": function(){ alert("我按了“否”。"); }
    },
    "警报测试",
    function(){ alert("测试完成"); }
);

等待对话框 (Wait)

efw.dialog.wait(
    "请等待5秒。",
    5,
    "等待测试",
    function(){ alert("测试完成"); }
);

预览对话框 (Preview)

efw.dialog.preview("a.jpg", "a.jpg");

自定义对话框 (Dialog)

function testDialog(){
    myDialog.p1 = 'hello world! ' + new Date();
    myDialog.dialog('open');
}

2. 自定义对话框工作流程

  1. 初始化对话框
    • helloDialog_myDialog.jsp 中定义对话框结构和初始化逻辑
    • 使用 jQuery UI 的 dialog 组件创建对话框
  2. 打开对话框
    • testDialog() 函数中设置参数并打开对话框
    • 通过 myDialog.p1 传递参数
  3. 初始化事件
    • 对话框打开时触发 open 事件
    • 调用 Efw("helloDialog_init", { msg: myDialog.p1 })
    • 将参数传递给初始化事件处理器
  4. 处理初始化
    • helloDialog_init.js 接收参数
    • 使用 Result 对象更新对话框内容
    • 将消息显示在对话框的 .msg 元素中

技术亮点

1. 模块化设计

2. 参数传递机制

3. 链式操作 API

return (new Result())
    .runat("#myDialog")
    .withdata({".msg": params["msg"]});

4. 事件驱动架构

5. 调试支持

params.debug(); // 输出参数信息

6. 灵活的对话框配置

使用场景

此示例适用于:

通过此示例,开发者可以学习 efw 框架中各种对话框的使用方法,以及如何创建和管理自定义对话框。