1. 程式人生 > >Jquery easyUI dialog的close和destroy

Jquery easyUI dialog的close和destroy

之前在用easyUI的時候遇到一個問題,一直困擾著我。

問題:

使用dialog來實現儲存和編輯框,使用dialog.(“close”)來關閉dialog框,這個時候如果有兩個頁面的儲存頁面的表單的欄位相同時,這兩個表單的東西就會混亂。要不就是儲存時打不開,要不就是編輯頁面開啟資料初始化不了。

解決思路:

使用close的方法來關閉dialog時,此dialog並不是完全消失,只是隱藏起來了而已。當另外一個dialog和這個dialog相同時,就會發生混亂。所以我們不適用close的方法來關閉dialog,使用destroy來銷燬dialog,當使用destroy時,如果頁面上顯式定義了dialog的話,關閉後就永遠都打不開了。所以我們不顯式定義dialog,並且把儲存頁面和列表頁面分開。

解決程式碼如下:
list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.ourpalm.resupgrade.bean.GmMenu"%>
<%@ page import="com.ourpalm.resupgrade.bean.GmModule"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <% String path = request.getContextPath(); request
.setAttribute("path", path); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><fmt:message key="resourceUploadGM" /></title> <link rel="stylesheet" type="text/css" href="<%=path%>/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="<%=path%>/themes/icon.css"> <script type="text/javascript" src="<%=path%>/js/jquery-1.8.0.min.js"></script> <script type="text/javascript" src="<%=path%>/js/jquery.easyui.min.js"></script> <fmt:setLocale value="${local}" /> <fmt:setBundle basename="applicationMessage" /> </head> <body> <table id="dgResource" class="easyui-datagrid" fit="true" url="" toolbar="#toolbar" pagination="true" rownumbers="true" fitColumns="true" singleSelect="true" pageSize="15" pageList="[15,20,25,30,35]"> <thead> <tr> <th data-options="field:'id',width:20,align:'center'">id</th> <th data-options="field:'resourcePath',width:40,align:'center'"><fmt:message key="resourceFileName" /></th> </tr> </thead> <tr></tr> </table> <div id="toolbar" style="padding: 5px; height: auto"> <div style="margin-bottom: 5px"> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newResource()"><fmt:message key="add" /></a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editResource()"><fmt:message key="edit" /></a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyResource()"><fmt:message key="delete" /></a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="UpdateResourceBeansProduced()"><fmt:message key="flushcatch" /></a> </div> </div> <script type="text/javascript"> $("#dgResource").datagrid({ url : "${path}/resourceServlet.do?method=search&fromFlg=lodad" }); function editResource() { var row = $('#dgResource').datagrid('getSelected'); if (row) { $('<div></div>').dialog({ id : 'newDialog', title : 'My Dialog', width : 800, height : 600, closed : false, cache : false, href : '${path}/view/gmtool/resource_save.jsp', modal : true, onLoad : function() { //初始化表單資料 }, onClose : function() { $(this).dialog('destroy'); }, buttons : [ { text : 'OK', iconCls : 'icon-ok', handler : function() { //提交表單 } }, { text : 'CANCEL', iconCls : 'icon-cancel', handler : function() { $("#newDialog").dialog('destroy'); } } ], }); } } </script> </body> </html>

save.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.ourpalm.resupgrade.bean.GmMenu"%>
<%@ page import="com.ourpalm.resupgrade.bean.GmModule"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%
    String path = request.getContextPath();
    request.setAttribute("path", path);
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><fmt:message key="resourceUploadGM" /></title>
<link rel="stylesheet" type="text/css" href="<%=path%>/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="<%=path%>/themes/icon.css">
<script type="text/javascript" src="<%=path%>/js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="<%=path%>/js/jquery.easyui.min.js"></script>
<fmt:setLocale value="${local}" />
<fmt:setBundle basename="applicationMessage" />
</head>
<body>

    <div class="ftitle">
        <fmt:message key="resourceinformation" />
    </div>
    <form id="fmResource" method="post" novalidate>
        <div style="display: none;">
            <input name="id" id="id" value="">
        </div>
        <div class="fitem">
            <label class="rightalign"><fmt:message key="resourceFileName" />:</label>
            <input name="resourcePath" id="resourcePath"
                class="easyui-validatebox" required="true">
        </div>
    </form>
    <script type="text/javascript"></script>
</body>
</html>

相關推薦

JQuery EasyUI屬性常見用法

屬性分為CSS片段和JS片段。 CSS類定義: 1、div easyui-window        生成一個window視窗樣式。       屬性如下:                    1)modal:是否生成模態視窗。true[是] false[否]                 

Jquery EasyUI Dialog closedestroy方法

        在使用JQuery EasyUI做專案的時候,經常需要使用Dialog實現彈出框效果,但是在“檢視日常活動連結”的時候,有兩個模組呼叫的是同一個Dialog頁面,這個時候就出現頁面混亂情況,要麼就是Dialog內容無法開啟,其實這是Dialog的close和

Jquery easyUI dialog的closedestroy

之前在用easyUI的時候遇到一個問題,一直困擾著我。 問題: 使用dialog來實現儲存和編輯框,使用dialog.(“close”)來關閉dialog框,這個時候如果有兩個頁面的儲存頁面的表單的欄位相同時,這兩個表單的東西就會混亂。要不就是儲存時打不開,

使用Struts2jQuery EasyUI實現簡單CRUD系統(五)——jsp,json,EasyUI的結合

元素 word cli resultset sheet 傳輸 charset {} tco 這部分比較復雜,之前看過自己的同學開發一個選課系統的時候用到了JSON,可是一直不知道有什麽用。寫東西也沒用到。所以沒去學他。然後如今以這樣的懷著好奇心,這是做什麽用的,這是怎麽用

easyUI dialog的closedestroy區別

之前在用easyUI的時候遇到一個問題,一直困擾著我。 問題: 使用dialog來實現儲存和編輯框,使用dialog.(“close”)來關閉dialog框,這個時候如果有兩個頁面的儲存頁面的表單的欄位相同時,這兩個表單的東西就會混亂。要不就是儲存時打不開,要不就是編輯頁面開啟資料初始

jQuery easyui dataGrid 動態改變排序欄位名,一般情況下,在使用的時候,我們會點選相應欄位進行排序,這裡以JAVA為例,後端的實體類欄位有可能資料庫的欄位不一致; 如:實體類中的

jQuery easyui dataGrid 動態改變排序欄位名,一般情況下,在使用的時候,我們會點選相應欄位進行排序,這裡以JAVA為例,後端的實體類欄位有可能和資料庫的欄位不一致; 如:實體類中的屬性為userName,前臺filed="userName"而資料庫的欄位

jQuery EasyUI中window/dialog 視窗摺疊展開方法(顯示)

在jQuery的EasyUI中新視窗或訊息框是通過class="easyui-window"和class="easyui-dialog"定義,並可以通過其collapsible、minimizable、maximizable、closable、closed分別控

當使用EasyUI時,需要的Field屬性是子屬性時候,除了formatter修改jquery.easyui.min.js的方法

說起來這個方法也不是特別的好,但是當你需要在頁面上使用過濾Filter的時候,這個方法還是相當有用的. 以我本地為例 Entity中使用的是hibernate聯合主鍵,此時主鍵id中包含兩個屬性,一個day,一個sitename,如下: {"id":{"siteName"

jQuery EasyUI詳解-EasyUI佈局標籤頁

EasyUI的佈局非常簡單,但是也能充分滿足網頁日常的佈局,先來一個最基本的例子: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYP

JQuery EasyUI datagrid 批量編輯提交

<script type="text/javascript"> $(function() { var $dg = $("#dg"); $dg.datagrid({ url : "servlet/list",

使用Struts2jQuery EasyUI實現簡單CRUD系統(八)——Struts與EasyUI使用JSON進行互動

由於前面寫了的四篇文章壓縮得太厲害,還有真正的原理也沒有弄通,所以重新寫了使用Struts2和jQuery EasyUI實現簡單CRUD系統(一)、(二)和(三)。知道ajax與struts間用json

loadrunner 壓力測試 平均響應時間20秒 100使用者併發 jquery.easyui.min.js jquery.js佔用時間最長

loadrunner 壓力測試 平均響應時間20秒  100使用者併發 jquery.easyui.min.js 和jquery.js佔用時間最長 很無奈。jquery.easyui.min.js和jquery.js 都是原始的。這個速度還說慢,沒有辦法,優化吧。 把

jquery easyUi 在日期控制元件裡面獲取值賦值的方法

前提是該匯入到js包肯定匯入進來了 $("#txtstart").datetimebox('getValue');//取值 $("#txtstart").datetimebox('setValue', calEvent.start+""); //賦值

jquery easyui layout 怎樣新增刪除面板

<divid="gpyDiv"class="easyui-layout"fit=truestyle="width:100%;height:100%;"> <divdata-optio

Mybatis-PlusjQuery EasyUi學習總結

1.mybatis-plus 簡介:mybatis-plus是mybatis的增強工具,在mybatis的基礎上只做增強不做改變

Jquery對象DOM對象的區別

rip htm jquery 講解 是我 轉載 數組 關於 詳細 1.jQuery對象和DOM對象第一次學習jQuery,經常分辨不清哪些是jQuery對象,哪些是 DOM,因此需要重點了解jQuery對象和DOM對象以及它們之間的關系.DOM對象,即是我們用傳統的方法(j

動態控制jQuery easyui datagrid工具欄顯示隱藏

第一條 button 一個 按鈕 yui query 控制 show disable //隱藏第一個按鈕 $(‘div.datagrid-toolbar a‘).eq(0).hide(); //隱藏第一條分隔線 $(‘div.datagrid-toolbar div‘).e

自己在項目中寫的一個Jquery插件Jquery tab 功能

分享 temp parameter turn sel url position pac tco 後臺查詢結果 PDFSearchResult實體類: [DataContract(Name = "PDFSearchResult")] public class P

jquery easyui的使用

tracking p s article -c font 結構 效果 js報錯 3.0 第一步下載jquery easyui 下載地址:http://www.jeasyui.com/download/index.php 第二步創建Java web項目 第三步導入相關的

jquery easyui grid 表格特殊字符處理

數據庫字段 一個 cti enc formatter val 提示 ddr 特殊字符 grid 獲取的數據中,如果數據存在測試的字符,或者js語句,會導致頁面布局錯亂,如下方法,讓獲取到的數據全部當成文本進行顯示 此操作主要防止以下亮點 1. 由於業務需要,查詢的數據中