搜尋
首頁web前端Bootstrap教程淺析BootstrapBlazor中Table元件的自動產生列功能

下面Bootstrap欄位帶大家了解BootstrapBlazor中的Table元件,介紹一下Table元件的自動產生列功能,希望對大家有幫助!

淺析BootstrapBlazor中Table元件的自動產生列功能

Bootstrap Blazor 是一套企業級 UI 元件庫,適應行動端支援各種主流瀏覽器,已經在多個交付項目中使用。透過本套組件可以大幅縮短開發週期,節省開發成本。目前已經開發、封裝了 70 多個組件。

  • Gitee 開源位址為:https://gitee.com/LongbowEnterprise/BootstrapBlazor

  • Github 開源位址為:https://github .com/ArgoZhang/BootstrapBlazor

  • 線上示範網站:https://www.blazor.zone

Table 應該是做管理型網站開發的核心元件了,透過Table 可以衍生出非常多的功能,由於這套元件幾乎沒有宣傳,導致知道的人不是很多,但是很多小夥伴都是使用了其他一些開源blazor 專案後發現Table 元件根本無法使用。

  • 載入資料太卡
  • 功能缺少太多

那麼從今天開始正式介紹一下效能爆炸,操作簡單的BootstrapBlazor 元件庫中的最強王者元件Table,由於功能實在是太多,僅範例目前網站中就有近60 個各種實戰中需要的功能,再接下來的時間我們一一介紹

自動產生列功能

#使用Table 元件時大多數元件都是要求使用者輸入顯示那些列,這樣會在razor 檔案中增加大量列相關信息,如下所示

<TableColumn @bind-Field="@context.DateTime" Width="180" />
<TableColumn @bind-Field="@context.Name" />
<TableColumn @bind-Field="@context.Address" />
<TableColumn @bind-Field="@context.Education" />
<TableColumn @bind-Field="@context.Count" />
<TableColumn @bind-Field="@context.Complete">

如果一個實體類別屬性太多時。這裡書寫起來就會篇幅非常長,BootstrapBlazor 元件庫的Table 元件有一個屬性AutoGenerateColumns ,當設定其值為true時,會根據綁定模型的屬性進行自動產生列信息,為開發人員節約了大量的程式碼,先看範例

<Table TItem="BindItem" IsStriped="true" IsBordered="true" IsMultipleSelect="true"
            ShowToolbar="true" ShowExtendButtons="true" AutoGenerateColumns="true"
            OnQueryAsync="@OnEditQueryAsync" OnResetSearchAsync="@OnResetSearchAsync"
            OnSaveAsync="@OnSaveAsync" OnDeleteAsync="@OnDeleteAsync">
</Table>

怎麼樣?透過這一行程式碼就完成了表格的全自動生成,並且提供了增、刪、改、查、過濾、排序等等全部功能。效果圖如下

是不是有一些心動,這麼少的程式碼居然可以實現這麼多功能?沒錯!用 BootstrapBlazor 元件庫的 Table 元件開發就是這麼簡單。

劃重點

使用Table 元件UI 層面的基本操作都已封裝到元件功能中,開發人員只需要將精力轉移到資料庫的操作上去,如範例中的

  • OnQueryAsync 資料查詢方法
  • OnSaveAsync 資料保存方法(內部自動判斷主鍵執行插入或更新操作)
  • OnDeleteAsync 資料刪除方法(可自行進行真實刪除或標記刪除操作)
  • OnResetSearchAsync

#實作原則

Table 元件為泛型元件,透過TItem 設定綁定模型類型為BindItem 實體類,在這個實體類別中透過AutoGenerateColumnAttribute

標籤對自動產生列規則進行設置,具體參數如下:

[AttributeUsage(AttributeTargets.Property)]
public class AutoGenerateColumnAttribute : Attribute, ITableColumn
{
    /// <summary>
    /// 获得/设置 显示顺序
    /// </summary>
    public int Order { get; set; }

    /// <summary>
    /// 获得/设置 是否忽略 默认为 false 不忽略
    /// </summary>
    public bool Ignore { get; set; }

    /// <summary>
    /// 获得/设置 当前列是否可编辑 默认为 true 当设置为 false 时自动生成编辑 UI 不生成此列
    /// </summary>
    public bool Editable { get; set; } = true;

    /// <summary>
    /// 获得/设置 当前列编辑时是否只读 默认为 false
    /// </summary>
    public bool Readonly { get; set; }

    /// <summary>
    /// 获得/设置 是否允许排序 默认为 false
    /// </summary>
    public bool Sortable { get; set; }

    /// <summary>
    /// 获得/设置 是否为默认排序列 默认为 false
    /// </summary>
    public bool DefaultSort { get; set; }

    /// <summary>
    /// 获得/设置 是否为默认排序规则 默认为 SortOrder.Unset
    /// </summary>
    public SortOrder DefaultSortOrder { get; set; }

    /// <summary>
    /// 获得/设置 是否允许过滤数据 默认为 false
    /// </summary>
    public bool Filterable { get; set; }

    /// <summary>
    /// 获得/设置 是否参与搜索 默认为 false
    /// </summary>
    public bool Searchable { get; set; }

    /// <summary>
    /// 获得/设置 列宽
    /// </summary>
    public int? Width { get; set; }

    /// <summary>
    /// 获得/设置 是否固定本列 默认 false 不固定
    /// </summary>
    public bool Fixed { get; set; }

    /// <summary>
    /// 获得/设置 列是否显示 默认为 true 可见的
    /// </summary>
    public bool Visible { get; set; } = true;

    /// <summary>
    /// 获得/设置 本列是否允许换行 默认为 false
    /// </summary>
    public bool AllowTextWrap { get; set; }

    /// <summary>
    /// 获得/设置 本列文本超出省略 默认为 false
    /// </summary>
    public bool TextEllipsis { get; set; }

    /// <summary>
    /// 获得/设置 列 td 自定义样式 默认为 null 未设置
    /// </summary>
    public string? CssClass { get; set; }

    /// <summary>
    /// 获得/设置 显示节点阈值 默认值 BreakPoint.None 未设置
    /// </summary>
    public BreakPoint ShownWithBreakPoint { get; set; }

    /// <summary>
    /// 获得/设置 格式化字符串 如时间类型设置 yyyy-MM-dd
    /// </summary>
    public string? FormatString { get; set; }

    /// <summary>
    /// 获得/设置 文字对齐方式 默认为 Alignment.None
    /// </summary>
    public Alignment Align { get; set; }

    /// <summary>
    /// 获得/设置 字段鼠标悬停提示
    /// </summary>
    public bool ShowTips { get; set; }

    /// <summary>
    /// 获得/设置 列格式化回调委托
    /// </summary>
    public Func<object?, Task<string>>? Formatter { get; set; }

    /// <summary>
    /// 获得/设置 编辑模板
    /// </summary>
    public RenderFragment<object>? EditTemplate { get; set; }

    /// <summary>
    /// 获得/设置 显示模板
    /// </summary>
    public RenderFragment<object>? Template { get; set; }

    /// <summary>
    /// 获得/设置 搜索模板
    /// </summary>
    public RenderFragment<object>? SearchTemplate { get; set; }

    /// <summary>
    /// 获得/设置 过滤模板
    /// </summary>
    public RenderFragment? FilterTemplate { get; set; }

    /// <summary>
    /// 获得/设置 列头显示文字未设置时显示字段名称
    /// </summary>
    public string? Text { get; set; }
}

這裡有大量可以限定的參數基本看註解就知道啦。更多 文件請查看線上演示文件 https://www.blazor.zone/tables/column

更多關於bootstrap的相關知識,可訪問:bootstrap教程

! ! ###

以上是淺析BootstrapBlazor中Table元件的自動產生列功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
Bootstrap:響應式Web設計的關鍵Bootstrap:響應式Web設計的關鍵May 08, 2025 am 12:24 AM

Bootstrap是由Twitter開發的開源前端框架,提供了豐富的CSS和JavaScript組件,簡化了響應式網站的構建。 1)其網格系統基於12列佈局,通過類名控制元素在不同屏幕尺寸下的顯示。 2)組件庫包括按鈕、導航欄等,易於定制和使用。 3)工作原理依賴於CSS和JavaScript文件,需注意處理依賴關係和样式衝突。 4)使用示例展示了基本和高級用法,強調了自定義功能的重要性。 5)常見錯誤包括網格系統計算錯誤和样式覆蓋,需使用開發者工具調試。 6)性能優化建議只引入必要組件,使用預處理器定製樣

Bootstrap:一個強大的Web設計框架Bootstrap:一個強大的Web設計框架May 07, 2025 am 12:05 AM

Bootstrap是一個開源的前端框架,由Twitter團隊開發,旨在簡化和加速網頁開發過程。 1.Bootstrap基於HTML、CSS和JavaScript,提供了豐富的組件和工具,用於創建現代化的用戶界面。 2.它的核心在於響應式設計,通過預定義的類和組件實現各種佈局和样式。 3.Bootstrap提供了預定義的UI組件,如導航欄、按鈕、表單等,易於使用和調整。 4.使用示例包括創建簡單的導航欄和高級的可折疊側邊欄。 5.常見錯誤包括版本衝突、CSS覆蓋和JavaScript錯誤,可通過版本管理工具

Bootstrap在React中的力量:詳細的外觀Bootstrap在React中的力量:詳細的外觀May 06, 2025 am 12:06 AM

Bootstrap在React中可以通過兩種方式集成:1)使用Bootstrap的CSS和JavaScript文件;2)使用React-Bootstrap庫。 React-Bootstrap提供了封裝好的React組件,使得在React中使用Bootstrap更加自然和高效。

在React中使用Bootstrap組件:逐步教程在React中使用Bootstrap組件:逐步教程May 05, 2025 am 12:09 AM

在React項目中使用Bootstrap組件可以通過兩種方式:1)使用原始Bootstrap的CSS和JavaScript;2)使用專門為React設計的庫如react-bootstrap或reactstrap。 1)通過npm安裝Bootstrap並在入口文件中引入其CSS文件,然後在React組件中使用Bootstrap類名。 2)安裝react-bootstrap或reactstrap後,直接使用其提供的React組件。使用這些方法可以快速構建響應式UI,但需注意樣式加載、JavaScript

簡單英語的引導程序:簡化網絡開發簡單英語的引導程序:簡化網絡開發May 04, 2025 am 12:02 AM

Bootstrap是開源的前端框架,簡化網頁開發。 1.它基於HTML、CSS、JavaScript,提供預定義樣式和組件。 2.使用預定義類和JavaScript插件,實現響應式佈局和交互功能。 3.基本用法是引入CSS和JavaScript文件,使用類創建導航欄等。 4.高級用法包括自定義復雜佈局。 5.調試時檢查類名和文件引入,使用開發者工具。 6.優化建議是只引入必要文件,使用CDN,自定義時用LESS或Sass。

引導和反應:創建響應式Web應用程序引導和反應:創建響應式Web應用程序May 03, 2025 am 12:13 AM

如何利用Bootstrap和React打造響應式Web應用?通過結合Bootstrap的CSS框架和React的組件化架構,可以創建現代、靈活且易於維護的Web應用。具體步驟包括:1)導入Bootstrap的CSS文件並使用其類樣式化React組件;2)利用React的組件化管理狀態和邏輯;3)按需加載Bootstrap樣式以優化性能;4)使用React的Hooks和Bootstrap的JavaScript組件創建動態界面。

Bootstrap:前端開髮變得更加容易Bootstrap:前端開髮變得更加容易May 02, 2025 am 12:10 AM

Bootstrap是一種開源的前端框架,幫助開發者快速構建響應式網站。 1)它提供了預定義的樣式和組件,如網格系統和導航欄。 2)通過CSS和JavaScript文件實現樣式和動態交互。 3)基本用法是引入文件並使用類名構建頁面。 4)高級用法包括通過Sass自定義樣式。 5)常見問題包括樣式衝突和JavaScript組件問題,可通過開發者工具和模塊化管理解決。 6)性能優化建議選擇性引入模塊和合理使用網格系統。

React和Bootstrap:理想的組合?React和Bootstrap:理想的組合?May 01, 2025 am 12:01 AM

React和Bootstrap是理想的搭配。 1)使用Bootstrap的CSS類和JavaScript組件,2)通過React-Bootstrap或reactstrap集成,3)按需加載和優化渲染性能,可以構建高效美觀的用戶界面。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境