Easyui 實現點擊不同樹節點打開不同tab頁展示不同datagrid表數據設計

来源:https://www.cnblogs.com/shouke/archive/2019/02/11/10363652.html
-Advertisement-
Play Games

實現點擊不同樹節點打開不同tab頁展示不同datagrid表數據設計 by:授客 QQ:1033553122 測試環境 jquery-easyui-1.5.3 需求描述 如上圖, 1、點擊左側樹,葉子節點,打開不同的tab頁,載入與節點對應的表數據 2、在上述打開頁面中,進行新增,編輯,複製等操作, ...


實現點擊不同樹節點打開不同tab頁展示不同datagrid表數據設計

by:授客 QQ:1033553122

 

測試環境

jquery-easyui-1.5.3

 

需求描述

 

 

 

如上圖,

1、點擊左側樹,葉子節點,打開不同的tab頁,載入與節點對應的表數據

2、在上述打開頁面中,進行新增,編輯,複製等操作,確保新增、複製等操作生成的數據只在該頁面可見。

 

涉及思路與關鍵代碼

 

1、單擊左側樹時,葉子節點時,新增、激活一個tab頁,打開、激活之前,設置tab頁id屬性值為樹節點的ID,設置title屬性為節點名稱

 

// 請求用例樹

$('#tree').tree({

    url:'nodeTree?treeType=APICaseTree&projectID=' + projectID,

    onClick: function(node){

    var rootNodeId =  $(this).tree('getRoot').id; //方法 getRoot    獲取根節點,返回節點對象

        if (node.id != rootNodeId) {  // 非根節點

 

            // 取消上次延時未執行的方法

            clearTimeout(id_of_settimeout);

 

            //執行延時

            id_of_settimeout = setTimeout(function(){

                // 方法:isLeaf   target  判斷指定的節點是否為葉節點,target 參數表示節點的 DOM 對象。

                // 如果為葉節點,即無子節點,則為該節點添加對應的tab頁,tab標題命名為節點名稱,tabID則設置為 項目ID-節點ID

                if ($(this).tree('isLeaf', node.target)) {

                    var tabID = node.id;

                    addTab(node.text, tabID);                     

                }

            }, 300);                                                      

        }

    }

});

 

// 點擊用例樹,葉節點,打開對應tab頁的函數實現

function addTab(title, tabID){

    var url = '/action/APICaseTreeNodePage';

    if($('#tabs').tabs('exists', title)){  // 如果tab已存在,則選中、激活tab

        $('#tabs').tabs('select', title);

    } else{ //否則,添加tab

        var iframe='<iframe scrolling="auto" frameborder="0"  src="'+url+'" style="width:100%;height:100%;"></iframe>';

        $('#tabs').tabs('add',{

            id: tabID,

            title: title,

            content: iframe,

            closable: true

        });

    }

}

 

2、定義datagrid時,不設置url,或者設置url為'',然後表格載入數據之前,修改請求數據的url(主要是修改請求參數,請求參數設計為節點ID,通過父子頁面關係,獲取tab ID來獲取,後臺伺服器根據傳遞的url參數進行數據的篩選並返回)

<table class="easyui-datagrid" rownumbers="true" pagination="true" id="API_test_case_step"

        data-options="border:false,

        method: 'get',

        onEndEdit:onEndEdit,

        onBeforeLoad:onBeforeLoad,

        ……

        ">

        <thead>

        ……

    </thead>

</table>

 

// 載入數據之前修改url值,以保持頁面數據和用例的對應關係

function onBeforeLoad(param){

// 獲取當前頁面所在父頁面(tab頁)的ID,即用例樹節點ID

    var currentTab = window.parent.$('#tabs').tabs('getSelected');

    var tabID = currentTab.panel('options').id;

    var nodeID = tabID;

    $('#API_test_case_step').datagrid('options').url = '/action/loadAPICaseSteps?nodeID=' + nodeID;

}

 

到這一步已經實現了樹節點和請求頁面數據的對應關係。

 

3、新增,複製數據時也可以按上述第2點的設計思路來進行,先通過父子頁面關係獲取相關id,然後和其它數據一起發送給伺服器


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --以下幾個為相關表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;SELECT * FROM v$locked_object;SELECT * FROM al ...
  • hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。Metastore (hive元數據)Hive將元數據存儲在資料庫中,比如mysql ,derby.Hive中的元數據包括表的名稱 ...
  • ...
  • [20190211]簡單測試埠是否打開.txt--//昨天看一個鏈接,提到如果判斷一個埠是否打開可以簡單執行如下:--//參考鏈接:https://dba010.com/2019/02/04/check-if-a-port-on-a-remote-system-is-reachable-with ...
  • 題接上篇的文章的項目,還是那個空貨管理app。本篇文章用於講解基於Flutter的app項目的升級方案。 在我接觸Flutter之前,做過一個比較失敗的基於DCloud的HTML5+技術的app,做過幾個RN項目。在這兩種不同機制的app升級方案中,RN採用的是微軟的CodePush技術。而那個比較 ...
  • 正如標題所述,JavaScript閉包對我來說一直有點神秘,看過很多閉包的文章,在工作使用過閉包,有時甚至在項目中使用閉包,但我確實是這是在使用閉包的知識。 最近看國外的一些文章,終於,有人用於一種讓我明白方式對閉包進行瞭解釋,我將在本文中嘗試使用這種方法來解釋閉包。 ...
  • 1、保存圖片到博客園相冊 2、複製代碼到可以放html代碼的地方 我因為數量問題把這段sei到了 頁首Html代碼 3、把代碼中的src改成:相冊中的圖片地址 如果不知道圖片處理方法的可以參考另一篇隨筆: "Web前端:博客美化:一、模板美化" 我是在一個炒雞美的博客上看到這個緞帶裝飾的 原文提供了 ...
  • 1、獲取JS許可權 因為是js代碼所以需要放在 側邊欄公告 里 沒開通之前,有一個申請的鏈接,點擊即可,我是第二天才看到過審的 ^ ^ 2、Ctrl+C、Ctrl+V 數組裡的文字隨自己心情啦 另:3000是文字消失的速度,數值越大跑的越慢 參考:https://boke112.com/4029.ht ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...