abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理八(二十六)

来源:https://www.cnblogs.com/chillsrc/archive/2019/11/12/11842320.html
-Advertisement-
Play Games

從篇 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八) 至abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五) 為止,我們已經通過EasyUI完成了貨物信息管理的增刪改功能基本實現。現... ...


abp(net core)+easyui+efcore實現倉儲管理系統目錄

abp(net core)+easyui+efcore實現倉儲管理系統——ABP總體介紹(一)

abp(net core)+easyui+efcore實現倉儲管理系統——解決方案介紹(二)

abp(net core)+easyui+efcore實現倉儲管理系統——領域層創建實體(三)

 abp(net core)+easyui+efcore實現倉儲管理系統——定義倉儲並實現 (四)

abp(net core)+easyui+efcore實現倉儲管理系統——創建應用服務(五)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之控制器(六)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之列表視圖(七)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改視圖(八)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之菜單與測試(九)

abp(net core)+easyui+efcore實現倉儲管理系統——多語言(十)

abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十一)

abp(net core)+easyui+efcore實現倉儲管理系統——菜單-上 (十六)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理一 (十九)

 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理二 (二十)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理三 (二十一) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理四 (二十二)  abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理五 (二十三) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理六(二十四) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五)  

       從篇 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五) 為止,我們已經通過EasyUI完成了貨物信息管理的增刪改功能基本實現。現在我們來完成查詢功能。

十七、查詢貨物信息

      1. 在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊在領域層“ABP.TPLMS.Web.Mvc”項目中的Views\Cargo目錄。 找到Index.cshmtl文件,添加一個查詢條件相關代碼。如下圖。

 

具體代碼如下:

<div id="dg-button">
      <form name="searchform" method="post" action="" id="searchform">
             <label for="Name">貨物名稱:</label>
             <input  name="Name" id="Name" class="easyui-validatebox" data-options="width:200" />
              <label for="Code">貨物代碼:</label>
              <input name="Code" id="Code" class="easyui-validatebox" data-options="width:150" />
               <label for="HsCode">商品編碼:</label>
               <input name="HsCode" id="HsCode" class="easyui-validatebox" data-options="width:100" />
              <a href="#" id="search" class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="Search()">查詢</a>
          </form>
        </div>

 

       2.在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊“ABP.TPLMS.Application”項目的 “Cargos”文件夾中,找到Paged CargoResultRequestDto.cs文件,添加查詢條件屬性。代碼如下。

public class PagedCargoResultRequestDto : PagedResultRequestDto
    {
        public string Keyword { get; set; }
        public string CargoName { get; set; }
        public string CargoCode { get; set; }
        public string HsCode { get; set; }
    }
}

 

      3. 在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊在領域層“ABP.TPLMS.Web.Mvc”項目中的Controller目錄。找到“CargoController.cs”文件。如下圖。

 

具體代碼如下:

[DontWrapResult]
        [HttpPost]
        public string List()
        {
            var page = Request.Form["page"].ToString();
            var size = Request.Form["rows"].ToString();
            int pageIndex = page == null ? 1 : int.Parse(page);
            int pageSize = size == null ? 20 : int.Parse(size);

            PagedCargoResultRequestDto paged = new PagedCargoResultRequestDto();
            paged.MaxResultCount = pageSize;
            paged.SkipCount = ((pageIndex-1)<0?0: pageIndex - 1) * pageSize;
            paged.CargoName = Request.Form["Name"].ToString();
            paged.CargoCode = Request.Form["Code"].ToString();
            paged.HsCode = Request.Form["HsCode"].ToString(); 

            var userList = _cargoAppService.GetAll(paged).GetAwaiter().GetResult().Items;
            int total = _cargoAppService.GetAll(paged).GetAwaiter().GetResult().TotalCount; //1000;
            var json = JsonEasyUI(userList,total);
            return json;
        }
      4. 在Visual Studio 2017的“解決方案資源管理器”中,找到領域層“ABP.TPLMS.Web.Mvc”項目中的wwwroot目錄下的view-resources\Cargo文件夾下,找到cargomgr.js文件,在工具欄(toolbar)中添加查詢條件。如下圖畫框處。

 

     5.在cargomgr.js文件添加一個查詢方法Search,代碼如下。

function Search() {
    var _$form = $('form[name=searchform]');
    var params = _$form.serializeFormToObject();
    $('#dgCargo').datagrid({ queryParams:params});
}
     6.在Visual Studio 2017中按F5運行應用程式。

     7.在瀏覽器中的地址欄中輸入“http://localhost:5000/”,然後輸入管理員用戶名進行登錄。

     8.在主界面的菜單中,選擇“Business->貨物管理”菜單項,瀏覽器中呈現一個帶查詢條件的貨物信息列表與四個按鈕。如下圖。

      9.在“貨物代碼”查詢條件中輸入“A”,然後點擊“查詢”按鈕,然而查詢結果沒有變化。如下圖。

     10. 在“商品編碼”查詢條件中輸入“8548900010”,然後點擊“查詢”按鈕,然而查詢結果沒有變化。如下圖。

      11.通過上面的兩次測試,發現查詢沒有起到作用。輸入查詢條件,還是查詢出了所有記錄。接下來我們來把查詢條件添加到查詢方法中。在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊“ABP.TPLMS.Application”項目的 “Cargos”文件夾中,找到CargoAppService.cs文件。重寫CreateFilteredQuery方法。代碼如下。

protected override IQueryable<Cargo> CreateFilteredQuery(PagedCargoResultRequestDto input)
        {

            return base.CreateFilteredQuery(input)
                 .Where(t => t.CargoName.Contains(input.CargoName))
                 .Where(t => t.CargoCode.Contains(input.CargoCode))
                 .Where(t => t.HSCode.Contains(input.HsCode))
                 ;
        }
     12. 重覆上面的第6、7、8步。然後在“貨物代碼”查詢條件中輸入“a”,然後點擊“查詢”按鈕,然而查詢出所有貨物代碼中有“a”的貨物信息。如下圖。

     13.在“商品編碼”查詢條件中輸入“1100120000”,然後點擊“查詢”按鈕,然而查詢出所有“商品編碼”中有“1100120000”的貨物信息。如下圖。

      14.在“商品名稱”查詢條件中輸入“觸摸屏”,然後點擊“查詢”按鈕,然而查詢出所有“商品名稱”中有“觸摸屏”的貨物信息。如下圖。

       15.在“商品名稱”查詢條件中輸入“觸摸屏”,然後點擊“查詢”按鈕,然而查詢出所有“商品名稱”中有“觸摸屏”的貨物信息,然後點擊翻頁。如下圖。

 

       至此,通過EasyUI進行增刪改查的功能已經全部實現。


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

-Advertisement-
Play Games
更多相關文章
  • 多態是類的三大特性之一,抽象類又是多態的實現方法之一。抽象類是什麼呢,如果把虛方法比作一個盛有純凈水的杯子,那麼此時的“純凈水”就是事先定義好的方法,我們可以根據不同的需求來改變杯子中所事先盛放的是“純凈水”還是“咖啡”。但是抽象類呢,他更像是一個空的杯子,放在消毒櫃中,讓有需要的人自己去拿,去決定 ...
  • 類型的劃分 一個類型,要麼是值類型,要麼是引用類型 。區別在於拷貝方式:值類型拷貝值,引用類型拷貝引用 值類型 值類型直接包含值。相當於每一個值類型都有自己單獨的值: int a = 10; int b = a; a和b都有著自己的值,修改a並不會影響b,反過來一樣,互不影響。 即使是將實例傳給Co ...
  • 每一個擁有資料庫的項目,都會涉及到資料庫數據的操作,而很多時候都會用到相同的方法,但是只是涉及到的表不一樣,如果不對這些類似方法進行封裝,開發上就會造成時間上的浪費。 那麼如何對這些方法進行封裝呢? 要會封裝方法,最基本的得先瞭解 泛型 是什麼,什麼是泛型,博客園上有很多對這個的講解,我也相信,科班 ...
  • 一、.MemoryCache介紹 MemoryCache是.Net Framework 4.0開始提供的記憶體緩存類,使用該類型可以方便的在程式內部緩存數據並對於數據的有效性進行方便的管理, 它通過在記憶體中緩存數據和對象來減少讀取資料庫的次數,從而減輕資料庫負載,加快數據讀取速度,提升系統的性能。 二 ...
  • .Net Core Vue Qucik Start =========================== This is a ASP.NET Core 3.0 project seamlessly integrationed with Vue.js template. A complaint fr ...
  • 前言 Microsoft.AspNetCore.ConcurrencyLimiter AspNetCore3.0後增加的,用於傳入的請求進行排隊處理,避免線程池的不足. 我們日常開發中可能常做的給某web伺服器配置連接數以及,請求隊列大小,那麼今天我們看看如何在通過中間件形式實現一個併發量以及隊列長 ...
  • 我們的需求是什麼? 答:需要在圖片上增加一些自定義標記,例如:2個圖片對比時,對相同區域進行高亮。 先上效果圖: 設計思路 1.概述 1.通過TargeUpdated事件,重新繪製圖片進行替換。 2.詳細實現 1.我們先綁定ImageTargetUpdated事件。 根據微軟官方文檔,如上圖,我們需 ...
  • Microsoft Office是微軟公司的一個文字處理器應用程式,作為辦公軟體必不可少的神器之一,其中Word、Excel是日常工作中常用的文檔管理工具。目前,Aspose系列和Spire系列是文檔管理開發API中非常受歡迎的兩個系列產品。 那麼這兩個系列工具性能上有何異同,我們該如何選擇哪一款呢 ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...