Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse der automatischen Spaltengenerierungsfunktion der Tabellenkomponente in Bootstrap Blazor

Eine kurze Analyse der automatischen Spaltengenerierungsfunktion der Tabellenkomponente in Bootstrap Blazor

青灯夜游
青灯夜游nach vorne
2022-02-28 11:01:363897Durchsuche

Die folgende Bootstrap-Kolumne wird Ihnen helfen, die Tabellenkomponente in Bootstrap Blazor zu verstehen und die automatische Spaltengenerierungsfunktion der Tabellenkomponente vorzustellen. Ich hoffe, dass sie für alle hilfreich ist!

Eine kurze Analyse der automatischen Spaltengenerierungsfunktion der Tabellenkomponente in Bootstrap Blazor

Bootstrap Blazor ist eine UI-Komponentenbibliothek auf Unternehmensebene, die an mobile Geräte angepasst ist und verschiedene gängige Browser unterstützt. Sie wurde in mehreren Bereitstellungsprojekten verwendet. Dieser Komponentensatz kann den Entwicklungszyklus erheblich verkürzen und Entwicklungskosten sparen. Bisher wurden mehr als 70 Komponenten entwickelt und verpackt.

  • Die Open-Source-Adresse von Gitee lautet: https://gitee.com/LongbowEnterprise/BootstrapBlazor. Die Open-Source-Adresse von Github lautet: https://github.com/ArgoZhang/BootstrapBlazor. Online-Demo-Website : https://www.blazor.zone

  • Table sollte die Kernkomponente der Management-Website-Entwicklung sein. Viele Funktionen können von Table abgeleitet werden Dieser Komponentensatz hat fast keine Bekanntheit, daher wissen nicht viele Leute davon. Viele Freunde haben jedoch einige andere Open-Source-Blazor-Projekte verwendet und festgestellt, dass die Komponente Table überhaupt nicht verwendet werden kann.

      Das Laden von Daten ist zu langsam
  • Es fehlen zu viele Funktionen

  • Ab heute werde ich die explosive Leistung und einfache Bedienung von BootstrapBlazor, der stärksten King-Komponente in, offiziell vorstellen Die KomponentenbibliothekTabelle, da es zu viele Funktionen gibt, verfügt allein die aktuelle Website im Beispiel über fast 60 Funktionen, die im tatsächlichen Kampf benötigt werden. Wir werden sie im Folgenden einzeln vorstellen

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 实体类,在这个实体类中通过 AutoGenerateColumnAttributeAutomatisch generierte Spaltenfunktion

Bei Verwendung der Tabelle-Komponente erfordern die meisten Komponenten, dass der Benutzer eingibt, welche Spalten angezeigt werden sollen , das in razor code> angezeigt wird. Fügen Sie der Datei eine große Anzahl spaltenbezogener Informationen hinzu, wie unten gezeigt<p><pre class="brush:html;toolbar:false;">[AttributeUsage(AttributeTargets.Property)] public class AutoGenerateColumnAttribute : Attribute, ITableColumn { /// &lt;summary&gt; /// 获得/设置 显示顺序 /// &lt;/summary&gt; public int Order { get; set; } /// &lt;summary&gt; /// 获得/设置 是否忽略 默认为 false 不忽略 /// &lt;/summary&gt; public bool Ignore { get; set; } /// &lt;summary&gt; /// 获得/设置 当前列是否可编辑 默认为 true 当设置为 false 时自动生成编辑 UI 不生成此列 /// &lt;/summary&gt; public bool Editable { get; set; } = true; /// &lt;summary&gt; /// 获得/设置 当前列编辑时是否只读 默认为 false /// &lt;/summary&gt; public bool Readonly { get; set; } /// &lt;summary&gt; /// 获得/设置 是否允许排序 默认为 false /// &lt;/summary&gt; public bool Sortable { get; set; } /// &lt;summary&gt; /// 获得/设置 是否为默认排序列 默认为 false /// &lt;/summary&gt; public bool DefaultSort { get; set; } /// &lt;summary&gt; /// 获得/设置 是否为默认排序规则 默认为 SortOrder.Unset /// &lt;/summary&gt; public SortOrder DefaultSortOrder { get; set; } /// &lt;summary&gt; /// 获得/设置 是否允许过滤数据 默认为 false /// &lt;/summary&gt; public bool Filterable { get; set; } /// &lt;summary&gt; /// 获得/设置 是否参与搜索 默认为 false /// &lt;/summary&gt; public bool Searchable { get; set; } /// &lt;summary&gt; /// 获得/设置 列宽 /// &lt;/summary&gt; public int? Width { get; set; } /// &lt;summary&gt; /// 获得/设置 是否固定本列 默认 false 不固定 /// &lt;/summary&gt; public bool Fixed { get; set; } /// &lt;summary&gt; /// 获得/设置 列是否显示 默认为 true 可见的 /// &lt;/summary&gt; public bool Visible { get; set; } = true; /// &lt;summary&gt; /// 获得/设置 本列是否允许换行 默认为 false /// &lt;/summary&gt; public bool AllowTextWrap { get; set; } /// &lt;summary&gt; /// 获得/设置 本列文本超出省略 默认为 false /// &lt;/summary&gt; public bool TextEllipsis { get; set; } /// &lt;summary&gt; /// 获得/设置 列 td 自定义样式 默认为 null 未设置 /// &lt;/summary&gt; public string? CssClass { get; set; } /// &lt;summary&gt; /// 获得/设置 显示节点阈值 默认值 BreakPoint.None 未设置 /// &lt;/summary&gt; public BreakPoint ShownWithBreakPoint { get; set; } /// &lt;summary&gt; /// 获得/设置 格式化字符串 如时间类型设置 yyyy-MM-dd /// &lt;/summary&gt; public string? FormatString { get; set; } /// &lt;summary&gt; /// 获得/设置 文字对齐方式 默认为 Alignment.None /// &lt;/summary&gt; public Alignment Align { get; set; } /// &lt;summary&gt; /// 获得/设置 字段鼠标悬停提示 /// &lt;/summary&gt; public bool ShowTips { get; set; } /// &lt;summary&gt; /// 获得/设置 列格式化回调委托 /// &lt;/summary&gt; public Func&lt;object?, Task&lt;string&gt;&gt;? Formatter { get; set; } /// &lt;summary&gt; /// 获得/设置 编辑模板 /// &lt;/summary&gt; public RenderFragment&lt;object&gt;? EditTemplate { get; set; } /// &lt;summary&gt; /// 获得/设置 显示模板 /// &lt;/summary&gt; public RenderFragment&lt;object&gt;? Template { get; set; } /// &lt;summary&gt; /// 获得/设置 搜索模板 /// &lt;/summary&gt; public RenderFragment&lt;object&gt;? SearchTemplate { get; set; } /// &lt;summary&gt; /// 获得/设置 过滤模板 /// &lt;/summary&gt; public RenderFragment? FilterTemplate { get; set; } /// &lt;summary&gt; /// 获得/设置 列头显示文字未设置时显示字段名称 /// &lt;/summary&gt; public string? Text { get; set; } }</pre><a href="https://www.php.cn/course/list/15.html" target="_blank" textvalue="bootstrap教程">Wenn es zu viele Attribute einer Entitätsklasse gibt. Es würde sehr lange dauern, hier zu schreiben. Die <code>Table-Komponente der BootstrapBlazor-Komponente hat eine Eigenschaft AutoGenerateColumns, wenn ihr Wert auf true

, Spalteninformationen werden automatisch basierend auf den Attributen des gebundenen Modells generiert, was Entwicklern viel Code erspart. Wie wäre es, wenn Sie sich zuerst das Beispiel rrreee ansehen? Durch diese Codezeile wird die Tabelle vollautomatisch generiert und alle Funktionen wie Hinzufügen, Löschen, Ändern, Überprüfen, Filtern, Sortieren usw. werden bereitgestellt. Das Rendering ist wie folgt🎜🎜🎜 🎜Ja, sind Sie nicht ein bisschen begeistert, dass mit so wenig Code tatsächlich so viele Funktionen erreicht werden können? Das ist richtig! So einfach ist die Entwicklung mit der Table-Komponente der BootstrapBlazor-Komponentenbibliothek. 🎜🎜🎜Emphasis🎜🎜🎜Verwenden Sie die Table-Komponente. Entwickler müssen ihre Energie nur auf Datenbankoperationen übertragen, wie im Beispiel 🎜🎜OnQueryAsync Datenabfragemethode 🎜🎜OnSaveAsync Datenspeichermethode (ermittelt intern automatisch den Primärschlüssel zum Durchführen von Einfüge- oder Aktualisierungsvorgängen) 🎜🎜OnDeleteAsync Datenlöschmethode (Sie können eine echte Löschung durchführen oder die Löschung selbst markieren) 🎜🎜OnResetSearchAsync Suchmethode zurücksetzen 🎜🎜🎜🎜Implementierungsprinzip🎜 🎜🎜Die Table-Komponente ist eine generische Komponente, und der Bindungsmodelltyp wird über TItem auf die Entitätsklasse BindItem festgelegt Entitätsklasse, übergeben AutoGenerateColumnAttribute legt die Regeln für die automatische Generierung von Spalten fest. Die spezifischen Parameter lauten wie folgt: 🎜rrreee🎜Es gibt eine große Anzahl von Parametern, die eingeschränkt werden können. Schauen Sie sich einfach die Kommentare dazu an wissen. Weitere Dokumentation finden Sie im Online-Demonstrationsdokument https://www.blazor.zone/tables/column🎜🎜Weitere Informationen zu Bootstrap finden Sie unter: 🎜Bootstrap-Tutorial🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der automatischen Spaltengenerierungsfunktion der Tabellenkomponente in Bootstrap Blazor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen