FineUIMvc隨筆(1)動態建立表格列
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。
《FineUIMvc隨筆》目錄
...
使用者需求
使用者希望實現動態建立表格列,在 WebForms 中,我們通過在 Page_Init 中建立列來實現:
但是在 MVC 中,如果還想著 WebForms 的那一套,想著怎麼才能在 Controller 中訪問 View 中的表格控制元件,這是行不通的。
這個頁面之所以能夠呈現在我們眼前,經歷了三個主要流程:
- MVC的路由引擎根據URL查詢相應的控制器(HomeController.cs)。
- 控制器的操作方法About準備資料,然後傳入檢視Home/About.cshtml。
- 檢視準備HTML片段,放入佈局頁面並返回瀏覽器。
控制器準備資料,傳入檢視,然後檢視才開始渲染頁面。也就是說控制器執行時,對檢視的內容一無所知。理解這一點很重要。
動態建立表格列
當然在 MVC 中實現動態建立表格列也不難,我們需要將表格列資料(GridColumn[])像表格資料來源一樣傳遞給檢視即可。
控制器:
// GET: Grid/DynamicColumns public ActionResult Index() { InitGridColumns();return View(DataSourceUtil.GetDataTable()); } private void InitGridColumns() { List<GridColumn> columns = new List<GridColumn>(); RenderField field = null; columns.Add(new RowNumberField()); field = new RenderField(); field.HeaderText = "性別"; field.DataField= "Gender"; field.FieldType = FieldType.Int; field.RendererFunction = "renderGender"; field.Width = 80; columns.Add(field); field = new RenderField(); field.HeaderText = "入學年份"; field.DataField = "EntranceYear"; field.FieldType = FieldType.Int; field.Width = 100; columns.Add(field); RenderCheckField checkfield = new RenderCheckField(); checkfield.HeaderText = "是否在校"; checkfield.DataField = "AtSchool"; checkfield.RenderAsStaticField = true; checkfield.Width = 100; columns.Add(checkfield); // ... ViewBag.Grid1Columns = columns.ToArray(); }
在控制器中,動態建立 List<GridColumn> 物件,並儲存到 ViewBag.Grid1Columns。
實際專案中,這一步可能需要和資料庫互動,來獲取需要動態建立的表格列。
檢視:
@{ ViewBag.Title = "Grid/Grid"; var F = @Html.F(); } @model System.Data.DataTable @section body { @(F.Grid() .EnableCollapse(true) .Width(850) .Title("表格(動態建立列)") .ShowHeader(true) .ShowBorder(true) .ID("Grid1") .DataIDField("Id") .DataTextField("Name") .Columns(ViewBag.Grid1Columns) .DataSource(Model) ) <br> <br> @(F.Button() .Text("選中了哪些行") .ID("Button1") .Listener("click", "notifySelectedRows('Grid1');") ) }
頁面效果:
小結
本篇文章介紹了 WebForms 和 MVC 中動態建立表格列的方法。通過對比,也希望大家能充分了解兩種框架的重要區別。
相關推薦
FineUIMvc隨筆(1)動態建立表格列
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 《FineUIMvc隨筆》目錄 ... 使用者需求 使用者希望實現動態建立表格列,在 WebForms 中,我們通過在 Page_Init 中建立列來實現: 但
FreeRTOS學習筆記(1)---任務建立與刪除API函式(動態函式)
FreeRTOS最基本的功能是任務管理,任務管理有建立與刪除任務 1.函式xTaskCreate() 此函式用來建立一個任務,使用此函式來建立任務所需的RAM(隨機儲存器)會從FreeRTOS的堆中分配,因此必須提供記憶體管理檔案,預設使用heap_4.c這個
FineUIMvc隨筆(6)對比WebForms和MVC中表格的資料庫分頁
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 通過對比WebForms和MVC中表格資料庫分頁程式碼的不同,可以對 MVC 中的資料流轉有更加深入的瞭解。 WebForms 中表格的資料庫分頁 WebForms中的程式碼會比較直觀,我們從具體是示例入手: http://fin
IDEA struts2隨筆(1)
down struts1 blog 發布 總結 api idt tomcat服務器 技術分享 struts2為基於MVC模式的輕量級web層應用框架,其以WebWork為核心,采用攔截器機制處理前端頁面的請求,從而使得web層的業務邏輯控制能夠與Servlet API完
效能學習隨筆(1)--負載均衡之f5負載均衡
負載均衡設計涉及軟體負載和硬體負載,下文轉自CSDN中一篇文章涉及f5硬負載知識 ----轉載:https://blog.csdn.net/tvk872/article/details/80634898 網路負載均衡(load balance),就是將負載(工作任務)進行平衡、分攤到多個操作單元上進行執行
Flink流計算隨筆(1)
Apache Flink(下簡稱Flink)專案是大資料處理領域最近冉冉升起的一顆新星,其不同於其他大資料專案的諸多特性吸引了越來越多人的關注。本文將深入分析Flink的一些關鍵技術與特性,希望能夠幫助讀者對Flink有更加深入的瞭解,對其他大資料系統開發者也能有所裨益。本文
演算法練習(1)動態規劃:買賣股票的最佳時機1
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出
Python 隨筆(1) 時間格式轉換
Python 有許多的時間格式 在將時間進行計算或者存入資料庫時 往往就需要對時間進行轉換 這裡將 時間戳 字串 datatime struct_time 做了隱式轉換的封裝成類 有更多的時間格式 可在下面留言 #!/usr/bin/env python
React從入門到架構(1)--手把手建立、解讀以及開發第一個ReactApp
在開始建立第一個專案之前,我們有一些準備工作要做: 1. 前置工作–安裝軟體 安裝nodejs軟體,官網都有免費的可以下載:nodejs下載地址. 安裝VS Code軟體,不喜歡VS Code的也可以使用sublime Text都可以的,官網可以免費下載安裝:V
MongoDB學習隨筆(1)
索引的小細節 Mongodb 的多鍵索引指的是索引中有一個鍵在某一個文件中是一個數組,那麼在explain操作中,"isMultikey"為true,而且比非多鍵索引效率低,因為可能有多個索引指向一個文件,返回結果集需要去重操作。 explain 中的 n / nsc
人人都能讀懂的設計模式(1):建立型模式
簡介 設計模式用於解決反覆出現的問題,是解決特定問題的指導方針。設計模式不是在應用中引用的類、package 或者庫,而是在某些特定場景下解決特定問題的指導方針。 設計模式用於解決反覆出現的問題,是解決某些特定問題的指導方針。 維基百科中這樣描述設計模式: 在軟體工
FineUIMvc隨筆(7)擴充套件通知對話方塊(顯示多個不重疊)
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 這篇文章我們將改造 FineUIMvc 預設的通知對話方塊,使得同時顯示多個也不會重疊。並提前出一個公共的JS檔案,供大家使用。 FineUIMvc 的通知對話方塊 FineUIMvc預設的通知對話方塊通過 F.notify 來顯示
FineUIMvc隨筆(4)自定義回發引數與自定義回發
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 不能忘卻的回發 在上一篇文章中,我們對FineUIMvc中的回發進行了詳細描述,目的是為了告訴大家: 1. FineUIMvc中的回發其實是請求控制器方法的另一種表述而已 2. 回發是輕量級,只會傳入你允許傳入的引數 3. 回發
FineUIMvc隨筆(5)UIHelper是個什麼梗?
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 UIHelper.Result 在 FineUIMvc 的每一個 HttpPost 的控制器方法裡面,你都會看到 UIHelper.Result(): 這到底是個什麼梗?在 ASP.NET MVC 中並沒有 UIHelper
FineUIMvc隨筆(2)怎樣在控制元件中巢狀 HTML
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 使用者需求 有網友在《FineUI總群1》問這麼一個問題:怎麼把 HTML 巢狀在控制元件中? 這是很多剛學習 FineUIMvc 的網友經常問的問題,我想原因是對 WebForms 陷入太深,習慣了 FineUI 控制
FineUIMvc隨筆(3)不能忘卻的回發(__doPostBack)
宣告:FineUIMvc(基礎版)是免費軟體,本系列文章適用於基礎版。 使用者反饋 有網友在官方論壇丟擲了這麼一個問題,似乎對 FineUIMvc 中的瀏覽器端與伺服器端的互動方式很有異議。 這裡面的關鍵詞就是:回發! 似乎一提到回發(__doPostBack),就讓人聯想到 Web
Activiti6.0 學習筆記(1)-動態設定任務執行人
最近公司一個管理類專案需要用到流程引擎,技術選型了很久,最終選擇activiti6.0.0.beta3作為本次的流程開發框架。本次開發週期只有兩個月,團隊內無人對activiti有很深的瞭解,故記錄使用過程中的問題。本次問題的需求:要求提交報銷資訊後,可以根據提交人的部門資訊
動態規劃系列(1)——動態規劃入門
一般的,我們常用的解決問題的方法有暴力解決法、分而治之、二分法、貪心法和動態規劃法。在你遇到一個問題怎麼想都想不出其解法的時候,很可能就需要用到動態規劃了;在你的題目中出現最優、最多、最好等字眼的時候,很可能可以使用動態規劃問題來解決了。 那麼什麼是動態規劃(Dynamic
srs程式碼學習(1)--listen建立過程
srs的服務偵聽的建立過程。 以rtmp服務為例 srs服務偵聽的建立依靠從上到下的三個類。分別是 SrsServer SrsStreamListener SrsTcpListener 埠偵聽過程為 1)main函式中呼叫全域性變數_srs_server的 li
Js面向物件隨筆(1)
1、物件的概念:在ECMAScript-262中,物件被定義為“無序屬性的集合,其屬性可以包含基本值,物件或者函式,那麼在JavaScript中,物件也無非就是由一些無序的Key-Value對組成,其中Value可以是基本值,物件或者函式”。 2、我們常用Object.pr