• 什么是dialog

对话框是一种特殊的窗口,它在顶部有一个工具栏,在底部有一个按钮栏。默认情况下,对话框(dialog)只有一个显示在头部右侧的关闭工具。

用户可以配置对话框行为来显示其他工具(比如:可折叠 collapsible、可最小化 minimizable、可最大化 maximizable,等等)。

dialog依赖 window和linkbutton,当需要dialog提供某个功能,而API上又没有找到的时候,可以试着去window和linkbutton上找找看

  • 使用html标签创建dialog
<div class="easyui-dialog" title="对话框" style="width: 500px;height: 500px">对话框</div>

对于一个普通的<div>,一旦添加上了easyui-dialog作为class样式后,就会变成一个“漂亮”的对话框了

推断一下,其他EasyUI组件也是这么个使用方法,就是在div或其他标签上,添加指定的EasyUI样式即可

  • 使用js创建dialog
<div id="dialog">对话框</div>
<script type="text/javascript">
$(function () {
$("#dialog").dialog({
title: "对话框"
width: 500,
height: 200
});
})
</script>

html标签提供了容器,js操作这个容器,加工成一个EasyUI的组件。

  • 如何设置属性?

如果使用标签创建,就添加 data-options 属性,如:data-options="iconCls:'icon-save',resizable:true,modal:true"

如果使用JS创建,就传递一个JSON对象给dialog方法即可。

个人以为,只要需要将一个页面元素渲染成EasyUI组件,那么尽量还是使用JS去创建于设置这个元素

HTML只负责网页的骨架,由EasyUI去控制页面的样式与组件的行为。

扩展:现在也有一部分意见认为前端开发中需要分离CSS框架与JS框架,其实也有其合理性,但是对于页面的美观性没有太大需求的项目而言,特别是对于后端系统而言,没有必要拆分。况且美观是一门玄学,假如到了那个必要的时候,团队中肯定需要专门的美工团队,这里就不展开了。

  • 属性

属性都可以在官网上找到,其基本的使用也都有。这里就不在赘述了,只对部分属性做一个使用说明

toolbar:顶部工具栏

buttons:底部按钮

这两个属性的值,都是JSON数组或选择器,举例:

选择器:

    <script type="text/javascript">
$(function () {
$("#dialog").dialog({
title: "对话框",
iconCls: "icon-save",
width: 500,
height: 200,
resizable: true,
toolbar: "#tb",
buttons: "#bts"
});
})
</script>
</head>
<body>
<div id="dialog">对话框</div>
<div id="tb">
<a href="#" class="easyui-linkbutton">按钮1</a>
<a href="#" class="easyui-linkbutton">按钮2</a>
</div>
<div id="bts">
<a href="#" class="easyui-linkbutton">按钮3</a>
<a href="#" class="easyui-linkbutton">按钮3</a>
</div>
</body>

JSON数组

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
String homePage = request.getContextPath();
%>
<!DOCTYPE HTML>
<html>
<head>
<title>JS创建dialog</title>
......
<script type="text/javascript">
$(function () {
$("#dialog").dialog({
title: "对话框",
iconCls: "icon-save",
width: 500,
height: 200,
resizable: true, modal: true, toolbar: [
{
text: '编辑',
iconCls: 'icon-edit',
handler: function () {
alert('编辑')
}
}, {
text: '帮助',
iconCls: 'icon-help',
handler: function () {
alert('帮助');
}
}
],
buttons: [{
text: '保存',
handler: function () {
alert("保存");
}
}, {
text: '关闭',
handler: function () {
alert("关闭");
}
}]
});
})
  </script>
</head>
<body>
<div id="dialog">对话框</div>
</body>
</html>

modal:是否模态,true - 对话框显示的时候,背景是无法操作的,这个属性继承自window,当页面操作需要阻塞的时候会用到这个

窗口 - dialog - 概述与基本使用的更多相关文章

  1. 窗口Dialog

    Dialog是窗口的意思,它是Window的子类.与frame相比,frame是我们大的窗口,而dialog便是那种弹出来和你说话的对话框. Dialog类的默认布局是BorderLayout Dia ...

  2. 控制窗口不能拖拉出主窗口 Dialog And Window

    /* 控制窗口不能拖拉出主窗口(覆写) */var easyuiPanelOnMove = function(left, top) { if ($(this).panel('options').reS ...

  3. jquery ui-----弹出窗口 dialog

    jquery ui 提供了强大的dialog功能,基本能满足开发的功能. 先上一个简单的例子: [代码] <script> $(function() {   $( "#dialo ...

  4. 窗口 - dialog - 与后端交互

    与后端交互,一般需要提交表单数据,所以,这次渲染得dialog其实是一个<form> <form id="loginForm"> <table ali ...

  5. SSM项目实战 之 EasyUI

    目录 EasyUI 简介 概述 使用EasyUI panel组件 简介 示例 JS形式及属性介绍 panel事件与方法 Window组件 概述 使用 行为 dialog 概述 使用 tabs组件 概述 ...

  6. JQuery Dialog(JS模态窗口,可拖拽的DIV) 效果实现代码

    效果图 调用示意图   交互示意图 如上图所示,这基本是JQueryDialog的完整逻辑流程了. 1.用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户 ...

  7. wxWidgets源码分析(7) - 窗口尺寸

    目录 窗口尺寸 概述 窗口Size消息的处理 用户调整Size消息的处理 调整窗口大小 程序调整窗口大小 wxScrolledWindow设置窗口大小 获取TextCtrl控件最合适大小 窗口尺寸 概 ...

  8. android中的Dialog

    一.Dialog概述 二.使用系统自带的Dialog 1.新建Builder AlertDialog.Builder builder = new AlertDialog.Builder(StoryAc ...

  9. (转)弹出窗口lhgDialog API文档

    应用到你的项目 如果您使用独立版本的lhgDialog窗口组件,您只需在页面head中引入lhgcore.lhgdialog.min.js文件,4.1.1+版本做了修改可以和jQuerya库同时引用, ...

随机推荐

  1. iOS coreData问题

    iOS常见错误-CoreData: Cannot load NSManagedObjectModel.nil is an illegal URL parameter
这是因为在工程中CoreData的 ...

  2. 【代码笔记】iOS-多张图片合成一张

    代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...

  3. CodeForce Round#49 untitled (Hdu 5339)

    Untitled Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  4. file get contents 访问不了域名原因

    file get contents('域名'); 居然不好用 后来发现 etc/hosts 127.0.0.1  www.baidu.com  这样的 #127.0.0.1  www.baidu.co ...

  5. Java基础知识学习(六)

    多线程 先了解线程的概念 多线程需要注意的地方 优先级.线程同步.消息传递.数据共享.死锁等 Java线程类 Thread,实现接口 Runnable Thread常用方法 getName 获得线程名 ...

  6. 一秒钟看懂SaaS、CRM、OA、ERP、HR、进销存

    自2014年以来,SaaS.CRM.OA.ERP.HR.APM.进销存.财务系统等,这些名词大量出现在微信朋友圈.电视楼宇广告和千百万融资资讯中.它们到底是什么意思?相互之间又有什么区别?在这个飞速发 ...

  7. [原]ubuntu14.04 网卡逻辑修改没有文件/etc/udev/rules.d/70-persistent-net.rules

    -----问题出现------ 在新装的ubuntu14.04系统中没有发现文件/etc/udev/rule.d/70-persistent-net.rules, 无法修改网络的逻辑名称(即把第一张网 ...

  8. cocos2d-x之 利用富文本控件解析xhml标签(文字标签,图片标签,换行标签,标签属性)

    执行后效果: 前端使用: 后台SuperRichText解析code void SuperRichText::renderNode(tinyxml2::XMLNode *node){ while (n ...

  9. 透过byte数组简单分析Java序列化、Kryo、ProtoBuf序列化

    序列化在高性能网络编程.分布式系统开发中是举足轻重的之前有用过Java序列化.ProtocolBuffer等,在这篇文章这里中简单分析序列化后的byte数组观察各种序列化的差异与性能,这里主要分析Ja ...

  10. iOS同一项目多个Target的快速实现方法

    之前写过这种场景下的项目,比如类似滴滴的司机端和乘客端,学生端和教师端等等.. 最近有人问我,就整理记录如下: 1.正常新建一个项目,完成后  如下: 2.这一步就是添加一个新的target 3.添加 ...