国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

.NET中使用BootstrapBlazor組件庫Table實操篇

開發 前端
今天我們主要來講解一下在.NET中使用BootstrapBlazor組件庫的Table表格組件(本章使用的數據都是程序自動生成的模擬數據,不需要與數據庫打交道)。

前言

Table表格在后臺管理應用中使用的是相當頻繁的,因此找一個功能齊全的前端框架對于我們而言是非常必要的,因為封裝完善的前端框架能夠大大提升我們的工作對接效率。今天我們主要來講解一下在.NET中使用BootstrapBlazor組件庫的Table表格組件(本章使用的數據都是程序自動生成的模擬數據,不需要與數據庫打交道)。

圖片圖片

BootstrapBlazor介紹

圖片圖片

  • 使用文檔:https://www.blazor.zone/introduction
  • Gitee項目地址:https://gitee.com/LongbowEnterprise/BootstrapBlazor

BootstrapBlazor是一套基于 Bootstrap 和 Blazor 的企業級組件庫,可以認為是 Bootstrap 項目的 Blazor 版實現。基于 Bootstrap 樣式庫精心打造,并且額外增加了 100 多種常用的組件,為您快速開發項目帶來非一般的感覺(喜歡Bootstrap風格的同學推薦使用)。

.NET BootstrapBlazor UI組件庫引入

BootstrapBlazor Table使用前提條件!

https://mp.weixin.qq.com/s/UIeKSqym8ibLRvDwra8aww

首先定義StudentViewModel

public class StudentViewModel
    {
        /// <summary>
        /// StudentID
        /// </summary>
        public int StudentID { get; set; }

        /// <summary>
        /// 班級名稱
        /// </summary>
        public string ClassName { get; set; }

        /// <summary>
        /// 學生姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 學生年齡
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 學生性別
        /// </summary>
        public string Gender { get; set; }
    }

.NET后臺模擬數據和增刪改查方法封裝

using BootstrapBlazor.Components;
using WebUI.Model;

namespace WebUI.Pages
{
    public partial class StudentExample
    {
        private static readonly Random random = new Random();
        public static List<StudentViewModel>? StudentInfoList;

        public StudentExample()
        {
            StudentInfoList = GenerateUserInfos();
        }

        /// <summary>
        /// 模擬數據庫用戶信息生成
        /// </summary>
        /// <returns></returns>
        public static List<StudentViewModel> GenerateUserInfos()
        {
            return new List<StudentViewModel>(Enumerable.Range(1, 200).Select(i => new StudentViewModel()
            {
                StudentID = i,
                ClassName = $"時光 {i} 班",
                Name = GenerateRandomName(),
                Age = random.Next(20, 50),
                Gender = GenerateRandomGender()
            }));
        }

        /// <summary>
        /// 生成隨機性別
        /// </summary>
        /// <returns></returns>
        public static string GenerateRandomGender()
        {
            string[] genders = { "男", "女" };
            return genders[random.Next(genders.Length)];
        }

        /// <summary>
        /// 生成隨機姓名
        /// </summary>
        /// <returns></returns>
        public static string GenerateRandomName()
        {
            string[] surnames = { "張", "王", "李", "趙", "劉" };
            string[] names = { "明", "紅", "強", "麗", "軍" };
            string surname = surnames[random.Next(surnames.Length)];
            string name = names[random.Next(names.Length)];
            return surname + name;
        }

        /// <summary>
        /// 數據查詢
        /// </summary>
        /// <param name="options">options</param>
        /// <returns></returns>
        private Task<QueryData<StudentViewModel>> OnQueryAsync(QueryPageOptions options)
        {
            List<StudentViewModel> studentInfoData = StudentInfoList;

            // 數據模糊過濾篩選
            if (!string.IsNullOrWhiteSpace(options.SearchText))
            {
                studentInfoData = studentInfoData.Where(x => x.Name.Contains(options.SearchText)).ToList();
            }

            return Task.FromResult(new QueryData<StudentViewModel>()
            {
                Items = studentInfoData.Skip((options.PageIndex - 1) * options.PageItems).Take(options.PageItems).ToList(),
                TotalCount = studentInfoData.Count()
            });
        }

        /// <summary>
        /// 模擬數據增加和修改操作
        /// </summary>
        /// <param name="studentInfo">studentInfo</param>
        /// <param name="changedType">changedType</param>
        /// <returns></returns>
        public Task<bool> OnSaveAsync(StudentViewModel studentInfo, ItemChangedType changedType)
        {
            if (changedType.ToString() == "Update")
            {
                var queryInfo = StudentInfoList.FirstOrDefault(x => x.StudentID == studentInfo.StudentID);
                if (queryInfo != null)
                {
                    queryInfo.Age = studentInfo.Age;
                    queryInfo.ClassName = studentInfo.ClassName;
                    queryInfo.Name = studentInfo.Name;
                    queryInfo.Gender = studentInfo.Gender;
                }
            }
            else if (changedType.ToString() == "Add")
            {
                StudentInfoList.Add(studentInfo);
            }
            return Task.FromResult(true);
        }

        /// <summary>
        /// 數據刪除
        /// </summary>
        /// <param name="items">items</param>
        /// <returns></returns>
        private Task<bool> OnDeleteAsync(IEnumerable<StudentViewModel> items)
        {
            items.ToList().ForEach(i => StudentInfoList.Remove(i));
            return Task.FromResult(true);
        }
    }
}

一行代碼快速生成Table表格

<Table TItem="StudentViewModel" AutoGenerateColumns="true" Items="StudentInfoList"></Table>

圖片圖片

顯示Table工具欄

<Table TItem="StudentViewModel" AutoGenerateColumns="true" Items="StudentInfoList" ShowToolbar="true"></Table>

圖片圖片

顯示Table多選模式

<Table TItem="StudentViewModel" AutoGenerateColumns="true" Items="StudentInfoList" ShowToolbar="true" IsMultipleSelect="true"></Table>

圖片圖片

增加Table搜索功能

<Table TItem="StudentViewModel" AutoGenerateColumns="true" Items="StudentInfoList" ShowToolbar="true" IsMultipleSelect="true" ShowSearch="true">

    <SearchTemplate>
        <GroupBox Title="搜索條件">
            <div class="row g-3 form-inline">
                <div class="col-12 col-sm-6">
                    <BootstrapInput @bind-Value="@context.Name" PlaceHolder="請輸入姓名" maxlength="50" ShowLabel="true" DisplayText="姓名" />
                </div>
                <div class="col-12 col-sm-6">
                    <BootstrapInput @bind-Value="@context.Gender" PlaceHolder="請輸入性別" maxlength="500" ShowLabel="true" DisplayText="性別" />
                </div>
            </div>
        </GroupBox>
    </SearchTemplate>

</Table>

圖片圖片

增加Table增、刪、改、查、分頁功能

<Table TItem="StudentViewModel"
       AutoGenerateColumns="true"
       ShowToolbar="true"
       IsMultipleSelect="true"
       OnSaveAsync="@OnSaveAsync"
       OnQueryAsync="@OnQueryAsync"
       OnDeleteAsync="@OnDeleteAsync"
       IsStriped="true"
       IsBordered="true"
       ShowSearch="true"
       IsPaginatinotallow="true"
       ShowSearchText="true">

    <TableColumns>
        <TableColumn Sortable="true" Filterable="true" Searchable="true" @bind-Field="@context.StudentID" />
        <TableColumn Sortable="true" Filterable="true" Searchable="true" @bind-Field="@context.Name" />
        <TableColumn Sortable="true" Filterable="true" Searchable="true" @bind-Field="@context.ClassName" />
        <TableColumn Sortable="true" Filterable="true" Searchable="true" @bind-Field="@context.Gender" />
    </TableColumns>

    <SearchTemplate>
        <GroupBox Title="搜索條件">
            <div class="row g-3 form-inline">
                <div class="col-12 col-sm-6">
                    <BootstrapInput @bind-Value="@context.Name" PlaceHolder="請輸入姓名" maxlength="50" ShowLabel="true" DisplayText="姓名" />
                </div>
                <div class="col-12 col-sm-6">
                    <BootstrapInput @bind-Value="@context.Gender" PlaceHolder="請輸入性別" maxlength="500" ShowLabel="true" DisplayText="性別" />
                </div>
            </div>
        </GroupBox>
    </SearchTemplate>
</Table>


責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2010-04-13 16:30:13

Oracle權限

2021-05-12 10:40:09

索引數據庫代碼

2010-05-21 17:51:58

MySQL數據庫

2010-05-25 11:13:07

MySQL數據庫

2023-12-28 08:00:00

數據庫人工智能

2009-01-19 09:14:31

.NETMySQLMySql驅動包

2009-12-23 17:22:18

Linux系統rsyn

2010-04-14 10:48:49

Oracle使用

2010-04-09 09:07:43

Oracle游標觸發器

2010-04-09 15:22:57

Oracle數據庫

2025-08-26 03:00:00

Excel技巧數據

2010-05-04 09:14:11

Oracle數據庫

2010-05-17 15:58:05

MySQL Admin

2010-05-19 15:01:14

MySQL數據導入

2010-10-25 13:17:21

Mono

2010-01-06 10:38:16

Linux安裝JDK

2010-04-12 09:36:29

Oacle merge

2010-05-14 13:32:07

MySQL數據庫

2010-06-12 09:46:05

MySQL數據庫

2010-05-14 14:21:18

點贊
收藏

51CTO技術棧公眾號

91视频国产精品| 免费国产成人看片在线| 激情亚洲影院在线观看| 午夜久久福利影院| 成人在线播放网址| 久久99日本精品| 久久成人资源| 午夜久久福利| 91精品在线一区| 精品国产精品| 91成人免费观看网站| 韩国三级成人在线| 视频在线观看99| jizz内谢中国亚洲jizz| 精品剧情v国产在线观看在线| 久久久久久久久亚洲精品| 午夜久久久久久久久久一区二区| 曰本人一级毛片免费完整视频| 亚洲摸摸操操av| 天堂中文字幕| 欧美性黄网官网| 大地资源中文在线观看免费版| 91成人免费在线视频| 阿v免费在线观看| 日韩一区国产二区欧美三区| 亚洲淫性视频| 亚洲高清久久网| 超级碰碰久久| 国产一区二区日韩精品欧美精品| 欧美韩国亚洲| 欧美大片第1页| 欧美日韩导航| 国产精品自产拍在线观看中文| 超碰成人久久| 国产在线欧美日韩| 久色婷婷小香蕉久久| 国产精品无码乱伦| 不卡免费追剧大全电视剧网站| 日韩a在线播放| 亚洲另类在线制服丝袜| 日韩在线无毛| 日韩女优av电影| 惠美惠精品网| 97精品一区二区视频在线观看| 色综合综合色| 精品免费一区二区三区蜜桃| 精品一区二区免费视频| 欧美视频免费播放| 一级中文字幕一区二区| 成人精品一区二区| 国产婷婷97碰碰久久人人蜜臀| 伊人久久大香| 2021国产精品视频| 欧美精品18| 国产午夜精品视频一区二区三区| 国产无人区一区二区三区| 一级黄色在线| 国产丝袜视频一区| 亲子伦视频一区二区三区| 国产精品swag| 99精品视频中文字幕| 97色伦图片97色伦在线电影| 精品国产第一区二区三区观看体验 | 91久久中文字幕| 天堂蜜桃91精品| 茄子视频成人免费观看| 色噜噜狠狠色综合中国| 唐人社导航福利精品| 欧美中文字幕在线| 三级成人在线视频| 99免费视频| 日韩免费视频一区| 亚洲va久久| 在线观看欧美亚洲| 亚洲综合一二区| 裤袜国产欧美精品一区| 成人黄色大片在线免费观看| 成人午夜激情视频| 国产天堂在线| 97久久久久久| 国产乱人伦偷精品视频不卡| 中文资源在线网| 日韩中文第一页| 国产日韩欧美| 蜜桃一级网站.| 中国日韩欧美久久久久久久久| 在线中文字幕第一区| 美女喷白浆视频| 精品亚洲一区二区| 在线观看的日韩av| 久久mv成人精品亚洲动漫| 亚洲日韩中文字幕在线播放| 女人天堂亚洲aⅴ在线观看| 一本久道综合色婷婷五月| 日韩视频一区二区| 精品国产中文字幕第一页| 久久观看最新视频| 欧美视频在线播放| 一个色免费成人影院| 国产日韩欧美精品在线观看| 欧美日韩国产一级片| 国产又粗又大又爽的视频| 久久久久久久久久久久久久久99 | 亚洲自拍另类欧美丝袜| 91毛片在线观看| 蜜桃麻豆影像在线观看| 国产精品10p综合二区| 亚洲女人的天堂| 懂色av色香蕉一区二区蜜桃| 懂色av一区二区三区四区五区| 色女孩综合影院| 国产剧情在线观看一区| 人妻熟女一二三区夜夜爱| 日韩电视剧在线观看免费网站| 国内精品福利| 涩爱av在线播放一区二区| 青青久久av北条麻妃黑人| 久久综合99re88久久爱| 欧美理论影院| ijzzijzzij亚洲大全| 日韩欧美中文字幕制服| 精品动漫3d一区二区三区免费版| 国产美女极品在线| 国模私拍一区二区三区| 成人听书哪个软件好| 国产高潮在线| 蜜桃网站成人| 欧美久久久一区| 亚洲美女色禁图| 黄色美女网站在线观看| 亚洲永久免费观看| 色综合咪咪久久| 欧美三区不卡| 日韩精品视频无播放器在线看| 国产精品99导航| 一区二区三区在线视频观看| 欧美三级情趣内衣| 在线小视频网址| 91丨九色丨国产| 欧美日韩二区三区| 久久午夜精品一区二区| 国产白丝在线观看| 亚洲一区3d动漫同人无遮挡 | 亚洲精品美女在线观看| 欧美中文日韩| 性欧美1819sex性高清大胸| 国产精品视频福利| 欧美日韩一二三区| 国产精品sm| 麻豆传媒在线观看| 国产综合色一区二区三区| 欧美日本韩国一区二区三区视频| 韩国自拍一区| 亚洲丝袜精品| 伊人色综合久久天天五月婷| 欧美本精品男人aⅴ天堂| 日本女人一区二区三区| videos性欧美另类高清| 国产伦精品一区二区三区四区视频_| 国产亚洲视频在线观看| 丁香天五香天堂综合| 日韩精品视频一区二区三区| 污版网站在线观看| 成人黄色中文字幕| 91麻豆精品91久久久久久清纯| 国产一级精品在线| 国产精东传媒成人av电影| 伊人色综合久久| 欧洲一区二区在线| 中文字幕av一区二区三区谷原希美| 国产日韩欧美精品在线| 97精品国产| 24小时免费看片在线观看| 国产av天堂无码一区二区三区| 国内精品小视频在线观看| 欧美日韩亚洲视频一区| 蜜乳av一区二区三区| 日本一区二区三区播放| 一级视频在线免费观看| 欧美黄色小视频| 国产日韩一区欧美| 亚洲第一中文av| www.亚洲视频.com| 懂色av一区二区三区| 一本久久综合| 免费看一级大黄情大片| 国产极品久久久久久久久波多结野| 高清日韩av电影| av电影在线观看网址| 在线免费av网站| 99精品在线免费观看| 懂色av一区二区| 亚洲成a人片77777在线播放| 亚洲一区二区三区中文字幕在线观看| 精品精品国产三级a∨在线| 忘忧草在线日韩www影院| 天堂精品在线视频| 黄色在线观看网| av免费观看大全| 日本国产精品视频|