ABP開發手記12 - 展示層實現增刪改查-腳本

来源:https://www.cnblogs.com/IT-Evan/archive/2019/10/03/ABP12.html
-Advertisement-
Play Games

點這裡進入ABP開發手記目錄 創建目錄 在展示層(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views\下新建文件夾Course //用以存放Course相關腳本 創建腳本 在JD.CRS.Web.Mvc\wwwroot\view-resources\View ...


點這裡進入ABP開發手記目錄 

創建目錄

在展示層(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views\下新建文件夾Course //用以存放Course相關腳本

創建腳本

在JD.CRS.Web.Mvc\wwwroot\view-resources\Views\Course下新建兩個JavaScript文件

查詢腳本

Index.js //用於Course的查詢視圖(Index.cshtml)

 1 (function () {
 2     $(function () {
 3 
 4         var _courseService = abp.services.app.course;
 5         var _$modal = $('#CourseCreateModal');
 6         var _$form = _$modal.find('form');
 7 
 8         _$form.validate({
 9         });
10 
11         $('#RefreshButton').click(function () {
12             refreshCourseList();
13         });
14 
15         $('.delete-course').click(function () {
16             var courseId = $(this).attr("data-course-id");
17             var courseName = $(this).attr('data-course-name');
18             deleteCourse(courseId, courseName);
19         });
20 
21 
22         $('.edit-course').click(function (e) {
23             var courseId = $(this).attr("data-course-id");
24 
25             e.preventDefault();
26             $.ajax({
27                 url: abp.appPath + 'Course/EditCourseModal?courseId=' + courseId,
28 
29                 type: 'POST',
30                 contentType: 'application/html',
31                 success: function (content) {
32                     $('#CourseEditModal div.modal-content').html(content);
33                 },
34 
35                 error: function (e) { }
36             });
37         });
38 
39         _$form.find('button[type="submit"]').click(function (e) {
40             e.preventDefault();
41 
42             if (!_$form.valid()) {
43                 return;
44             }
45 
46             var course = _$form.serializeFormToObject(); //serializeFormToObject is defined in main.js         
47 
48             abp.ui.setBusy(_$modal);
49             _courseService.create(course).done(function () {
50                 _$modal.modal('hide');
51                 location.reload(true); //reload page to see new user!
52 
53             }).always(function () {
54                 abp.ui.clearBusy(_$modal);
55             });
56         });
57 
58 
59         _$modal.on('shown.bs.modal', function () {
60             _$modal.find('input:not([type=hidden]):first').focus();
61 
62         });
63 
64 
65         function refreshCourseList() {
66             location.reload(true); //reload page to see new user!
67 
68         }
69 
70         function deleteCourse(courseId, courseName) {
71             abp.message.confirm(
72                 abp.utils.formatString(abp.localization.localize('AreYouSureWantToDelete', 'CRS'), courseName),
73 
74                 function (isConfirmed) {
75                     if (isConfirmed) {
76                         _courseService.delete({
77                             id: courseId
78 
79                         }).done(function () {
80                             refreshCourseList();
81 
82                         });
83                     }
84                 }
85             );
86         }
87     });
88 })();
Index

修改腳本

_EditCourseModal.js //用於Course的修改視圖(_EditCourseModal.cshtml)

 1 (function ($) {
 2     var _courseService = abp.services.app.course;
 3     var _$modal = $('#CourseEditModal');
 4     var _$form = $('form[name=CourseEditForm]');
 5 
 6 
 7     function save() {
 8 
 9         if (!_$form.valid()) {
10             return;
11         }
12 
13         var course = _$form.serializeFormToObject(); //serializeFormToObject is defined in main.js   
14 
15 
16         abp.ui.setBusy(_$form);
17         _courseService.update(course).done(function () {
18 
19             _$modal.modal('hide');
20 
21             location.reload(true); //reload page to see edited course!
22         }).always(function () {
23             abp.ui.clearBusy(_$modal);
24         });
25     }
26 
27 
28     //Handle save button click
29     _$form.closest('div.modal-content').find(".save-button").click(function (e) {
30         e.preventDefault();
31         save();
32 
33     });
34 
35     //Handle enter key
36     _$form.find('input').on('keypress', function (e) {
37 
38         if (e.which === 13) {
39             e.preventDefault();
40             save();
41         }
42 
43     });
44 
45     $.AdminBSB.input.activate(_$form);
46 
47     _$modal.on('shown.bs.modal', function () {
48         _$form.find('input[type=text]:first').focus();
49 
50     });
51 
52 })(jQuery);
_EditCourseModal

小工具

Bundler & Minifier //可用於合併/壓縮js, css等

打開VS工具/擴展和更新/聯機/搜索Bundler & Minifier,點擊下載,重啟VS完成安裝.

右鍵要處理的文件,選擇Bundler & Minifier / Minify File即可生成壓縮版本.

 


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

-Advertisement-
Play Games
更多相關文章
  • 終於到了精髓的地方了,這確實有點懵,總感覺這太麻煩了,而且寫著也不爽,還是懷念py或者java,但也沒辦法,還是要繼續學下去。 一、運算符& 1. scanf("%d" , &i); 里的& 2. 獲取變數的地址,它的操作數必須是變數 3. 地址的大小是否與int相同取決於編譯器 &不能取的地址 & ...
  • Python解釋器安裝與環境變數調試 Python解釋器安裝(3.6): www.python.org這個是python解釋器的官網,一定要牢記。 鑒於市場上有兩種python版本(2和3),今天兩種版本都裝一下,互相學習,如有錯誤還請各位評論指正。 ![img](https://img2018.c ...
  • 1、Java常用容器:List,Set,Map List: 繼承了Collection介面(public interface List<E> extends Collection<E> ),有序且允許出現重覆值。 Set: 繼承了Collection介面(public interface Set<E ...
  • java作用域public private protected 不寫 friendly的區別? public:可以被任何類引用。 protected:除了其他包不能使用,當前類,子孫類,同一包下的所有類都可 以使用。 friendly:不寫時,子孫類和其他包不能使用,當前類,同一包下都可以使用。 p ...
  • #!/usr/bin/env python# -*- coding:utf-8 -*-Product_List = [ ('Iphone11',200), ('HUA WEI Mate 30',200), ('Pythoon基礎教程',80), ('Coffee',30) ]Buy_List = [ ...
  • [TOC] 1.中間件介紹 1.1什麼是中間件? 官方的說法:中間件是一個用來處理Django的請求和響應的框架級別的鉤子。它是一個輕量、低級別的插件系統,用於在全局範圍內改變Django的輸入和輸出。每個中間件組件都負責做一些特定的功能。 但是由於其影響的是全局,所以需要謹慎使用,使用不當會影響性 ...
  • 一.多APP 二.flask admin 安裝 簡單使用 將表模型註冊到admin中 如果有個欄位是圖片指端 ...
  • 她是個很優秀的女生,不得不說我都覺得她很強大。因為我所瞭解,男生能做能擔當起來的事,她都是可以做到以及做過更優秀的那種(有事例,但不方便講)。 但是她喜歡女生,搞了一個對象是女生。嗯,今天國慶她倆一起來我家吃飯。然後就突然感覺到她一直像個男孩子一樣對那個女生,她說什麼做什麼都很照顧那個女孩子,看起來 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...