聊聊 Blazor 里 Radzen 6.0.0


最近、プロジェクト Radzen が 5.x から 6.0.0 になりました。

アップグレード自体はスムーズですが、重大な変更は不便です。見つけたら、公式コンポーネントもいくつか見つかりました。

書くたびに、文書を裏返し、パラメーターを推測する必要があります。そうすれば、心を持ちます。

今日のレセプション社は、私たちの承認を開始する予定ではなく、最新の会議を行っています。

1. RadzenDataGrid: 分页電影「假联動」

まず、最も一般的なエレクトロニクス DataGrid から起動します。

RadzenDataGrid 全体的には実際には悪くなく、機能、パフォーマンスも優れています。DataGrid メソッドをカスタマイズする

シナリオは次のとおりです。テーブルの上部に検索ボックスを追加し、下部がテーブル、下部が分割ページになります。

按全用 Blazor 思路の思路、分器が完了しました、それぞれの動作は DataGrid のダウンロードのパラメータです、実行就新了对吧?

Radzen はありません。

你得使生写:






    ...





@code {
    RadzenDataGrid grid;
    int pageIndex;
    int pageSize = 10;
    int totalCount;

    void OnPageChanged(int newPageIndex)
    {
        pageIndex = newPageIndex;
        grid.FirstPage(); // 等等,这不是第一页吗?
    }
}

問題がわかりましたか?

RadzenPager の PageChanged イベントは、新しいページ コードを 1 つだけ提供しますが、DataGrid には問題がありません。 GoToPage(pageIndex) この方法です。 FirstPage()NextPage()PrevPage()LastPage() この4つの方法が含まれています。

5 番目にジャンプしますか? 直接的な方法はありません。手動で設定する必要があります。 grid.PageIndex 次に調整します grid.Reload()

⚠️ 别手在哪: Pager コンポーネントと DataGrid コンポーネントは「假联動」—電影微一个、実際には各チューブのステータスです。

私の解決策は、ドライコンポーネント RadzenPager は完全に書き込み可能であり、DataGrid は NumberLoadData のレンダリングのみを担当します。

逆にもっと清爽。

2. RadzenDialog: 玄学に渡すパラメータ

DialogService は Radzen の機能の 1 つです。

松窗属师を開き、その中にいくつかのパラメータを渡すと、ユーザーは操作を完了して結果、つまりこのモードに戻ることができます。

ダイアログ ボックスを開くコードは次のとおりです。

var result = await DialogService.OpenAsync(
    "编辑用户",
    new Dictionary
    {
        { "UserId", userId },
        { "UserName", userName },
        { "IsAdmin", isAdmin }
    });

それから弹窗设计那边用 [Parameter] 受け取る:

// EditUserDialog.razor
[Parameter]
public int UserId { get; set; }

[Parameter]
public string UserName { get; set; }

[Parameter]
public bool IsAdmin { get; set; }

問題が発生しました。

重要な辞書は、電気およびテレビのパラメータ名です。 漥错了不可有名生老,電影不是报错,是パラメータパス不老,值是默耂的。

你下載半天,电影电影是 "UserID" 大写了D,而设计里是 UserId

さらに隠された問題もある——パラメータは OnInitialized の後に設定されます

OnInitialized の場合、UserId の削除後のプロパティは 0 です。 今回はパラメータが入力されていないため、OnParametersSetAsync に書き込まれます。

この動作は、通常の Blazor コンポーネントと同じではありません。通常のコンポーネントのパラメータは OnInitialized の前に設定され、Dialog Service はコンポーネントの最初のインスタンスとして作成され、パラメータが設定されます。

⚠️ 别手在哪: Dictionary さらに、機械と標準機械と標準肉眼コンポーネントが一致しない場合に設定されるパラメータは、初めて基本的な肉眼で行われます。

私の現在の実践は、各スプリングウィンドウコンポーネントに静的Openメソッドを与え、パラメータをラップすることです。

public static async Task Open(
    DialogService dialogService,
    int userId,
    string userName,
    bool isAdmin)
{
    return await dialogService.OpenAsync(
        "编辑用户",
        new Dictionary
        {
            [nameof(UserId)] = userId,
            [nameof(UserName)] = userName,
            [nameof(IsAdmin)] = isAdmin
        });
}

nameof 少なくともスペルミスがあり、ユーザーがプロンプトを入力したこともあります。

3. RadzenUpload: イベント电影反直觉

このコンポーネントをファイルアップロードしてください。Radzen 里は最も迷惑な人物の 1 人だと思います。

先述の最も基本的なシナリオ: ユーザーがファイルを選択し、ファイルの内容を読み出すか、それを API に渡します。これは非常に一般的な要件ですよね?

RadzenUpload の使用法:を参照してください。


見た目は普通です。URLはアップロードアドレス、イベント回论性感を指定します。

しかし問題は、このコンポーネントは「自動アップロード」です。—— 電影一個のファイル、電影宛に URL を発行しました。

ユーザーにファイルを選択させたい場合は、一度プレビューし、再度確認ボタンにチェックを入れてからアップロードしてください。

残念ながら、ダウンロード マシンはありません。最新の手順で URL を空文字にし、イベント内の自動処理ドキュメントを変更して、手動でアップロードします。

最も完全なものは OnChange イベントのパラメーターです。

void OnUploadChange(UploadChangeEventArgs args)
{
    foreach (var file in args.Files)
    {
        // file.Name 文件名
        // file.Size 文件大小
        // 想拿到文件内容?没有 Stream,也没有 byte[]
        // 你只能拿到文件名和大小
    }
}

对、错は見ません。OnChange にはドキュメント コンテンツがありません

想读文件の内容?選択肢は 2 つあります:

1 つは、JS を使用した相互正解ハンドマシンのファイル API の削除です。2 つは、後端からの戻り値である OnComplete イベントなどです。

ただし、OnComplete はアップロードが完了した後にトリガーされ、ファイルはすでに送信され、プレビューされています。

⚠️ 别手在哪: このコンポーネントは完全自動モードになるように設計されており、ファイルのコンテンツを読み取るための API は提供されません。

私は今、プロジェクトにファイルをアップロードしました。干支不用 RadzenUpload了。用原生的 独自のアップロード ロジックにより、より柔軟になります。

外観上層1層Radzenのハンドマシンが動作します。

4. RadzenScheduler: データバインディング

スケジューラーは Radzen に匹敵する強力なコンポーネントであり、その機能は本当に充実しています。日次ビュー、週次ビュー、月次ビュー、ドラッグ アンド ドロップによる調整時間、リソースのグループ化……などがあります。

しかし、そのデータバインディング方法はとても気に入っています。

通常の Blazor コンポーネントのデータ バインディングは次のようなものです。リストを指定すると、このリストが表示されます。リストが変わるとリストも変わります。

RadzenScheduler 不了玩。 2 つのモードがあります:

モード 1: データをグループに直接転送します。 このモードでは、スケジューラはすべてのデータを一度にロードし、それをフィルタリングしてクライアント自体に表示します。

モード 2: LoadData を使用します。 このコンポーネントは現在のビューの現在時刻を示し、対応する時間範囲内のデータを確認したり、対応する時間範囲内のデータを確認したりできます。

モード 2 の電気効果では、これらのボックスが必要になります。你没法はデータを自動的に更新します


    ...


@code {
    RadzenScheduler scheduler;

    async Task LoadSchedulerData(
        SchedulerLoadDataArgs args)
    {
        var data = await api.GetAppointments(
            args.Start, args.End);
        args.Data = data;
    }

    void RefreshData()
    {
        // 想刷新?没有 Reload 方法
        // scheduler.Reload() ← 不存在
        // 你得这么干:
        scheduler.SelectedDate = scheduler.SelectedDate.AddDays(1);
        scheduler.SelectedDate = scheduler.SelectedDate.AddDays(-1);
        // 改一下再改回去,触发重新加载
    }
}

データを更新して、「晃一下」SelectedDate を取得し、日々の新しい会議の「晃一下」SelectedDate LoadData を設定します。

公式フォーラムのスタッフが教えてくれた解決策です。

6.0.0も同じ

⚠️ 别手在哪: LoadData モードは公開されていません Reload メソッド、開発者はこの種のハックを使用して更新をトリガーする必要があります。

私の対処方法は、データキャッシュを自分で保持し、キャッシュ里拿からデータをロードし、再度キャッシュを更新する必要がある「晃一个」です。

5. RadzenHtmlEditor: 「半残」ステータス

富歌詞电影设计设计,我好了了久要不要放进来。

基本的な機能は実は同じなので、太字、斜体、リスト、リンク、画像、ずっと使えます。

デフォルトのツールバーは次のようになります。


一行分析、安全打印全体は安全室です。

ただし、ボタンの一部だけを予約したい場合はどうすればよいですか?それとも 1 つのボタンの順序を調整したいですか?

必要なボタンをすべて手動で 1 つずつ取得します。


    
    
    
    
    
    
    
    
    
    
    ...

これは、ポイントを使用して実行できます。

本物は——カスタマイズされたボタンを追加したいと思いますか? 可能ですが、簡単に書き込むことができます。

RadzenHtmlEditorButton があり、ボタンをカスタマイズしてクリックできます。ボタンのアイコンはホバーになっており、内蔵ボタンとは効果が異なります。

さらに細かい問題は、編集者の身長です。

デフォルトのエディターの高さはコンテンツを着いて移動します。これはシナリオによっては問題になりませんが、エディターの高さを固定させたい場合は、コンテンツをスクロールしますか?

Height パラメーターがないことがわかります。高さの設定がされていません。

最後になりますが、CSS は内部スタイルをカバーします。

⚠️ 别手在哪: デフォルトモードではボックスを開けて使用しますが、カスタマイズが必要になると「フルマニュアル」モードに入ります。

6. 黒じゃないほうがいい

あまりにも多くのことを言う「坏句话」,说公道话。

Radzen は Blazor のエコロジカル コンポーネントの 1 つであり、最も量が多く、最も包括的なオープン ソース コンポーネント ライブラリの 1 つであり、この点については議論の余地はありません。

そして、それは真のソース、MIT 契約、ダウンロード バージョンのオプションはありません。この点は譲渡する必要があります。

しかし、「能用」と「好用」の間には、まだ距離があります。

上記のいくつかのコンポーネントは使用できず、API 設計の全体的な感覚は 1 ステップ未満です。

これらは大きいものもあれば大きくないものもありますが、いくつかのメソッドやパラメーターと一緒に追加できます。しかし、それらが欠けている場合、開発者は 1 回ラップアラウンドし、1 回ハッキングし、1 回パッケージ化する必要があります。

多数を減らし、プロジェクトには「適用可能な Radzen」のコードが複数あります。

一言でまとめると: API Radzen パッケージ ライブラリは大きいですが、一部のコンポーネントのデザインは「夫用就行」であり、「エレガント好用」とはギャップがあります。

もちろん、上記は私の個人的な経験です。

異なる意見がある場合、または姿勢をさらに巧みに使用している場合は、コメント欄を歓迎します。

結局のところ、Blazor には大きなサークルはなく、常に良いものです。


著者について

コーディング、ERP / 製造業システム開発、6 年間、C# / .NET / Blazor を上書き。

ブログ: | 正式番号:CSharp 简介营

Leave a Reply

Your email address will not be published. Required fields are marked *

李伟 张静 王秀英 刘敏 陈强 杨磊 赵洋 黄勇 周杰 吴浩 徐艳 孙莉 马超 朱博 胡婷 郭鹏 何琳 彭浩 高飞 林涛 罗晨 梁悦 宋波 郑欣 谢辉 韩冰 唐雷 冯芳 于峰 董瑞 萧雨 程亮 曹晶 袁威 邓健 许凡 傅雪 沈丹 曾宇 彭浩 春日花园生活指南
城市夜晚的美丽风景
探索自然世界的秘密
现代家庭生活小技巧
秋天森林里的故事
每天学习新的知识
传统美食文化分享
快乐周末旅行日记
简单健康生活方式
发现城市隐藏的角落
清晨阳光与咖啡时光
阅读带来的无限乐趣
山川湖泊摄影记录
创意家居设计灵感
夏日海边旅行故事
探索古老文化与历史
厨房里的美味时光
数字时代生活观察
世界各地风景记录
温暖家庭故事分享
未来科技发展趋势
安静午后的阅读时间 春天里的绿色花园
城市生活的新发现
美好生活从今天开始
森林深处的自然风光
简单实用的生活知识
寻找生活中的小幸福
夏日阳光下的故事
传统文化艺术之旅
探索世界自然奇观
快乐家庭生活日记
清晨时光与美好心情
发现身边有趣的事情
秋日旅行摄影记录
健康生活每日分享
安静午后的读书时光
现代城市建筑之美
寻找自然中的宁静
世界美食文化探索
冬日温暖生活指南
艺术与创意生活空间
山间小路旅行故事
未来科技改变生活
海边日落摄影分享
每天一个生活小知识
周末家庭休闲时光
探索历史文化故事
生活中的艺术灵感
花园里的四季变化
寻找城市里的安静角落
晨光花园里的宁静时刻
城市文化探索笔记
夏日微风与自然风景
美好生活灵感分享
森林漫步旅行故事
秋季花海摄影日记
温暖家庭生活点滴
探索世界艺术之美
每日健康饮食指南
静谧湖边的美丽风景
创意设计生活空间
清晨阅读与咖啡时光
发现自然奇妙世界
传统手工艺术分享
旅行中的快乐回忆
山谷里的宁静生活
美食与文化交流日记
花园四季变化记录
简单快乐生活方式
古镇历史文化漫游
海边日出摄影分享
现代科技生活观察
安静午后的书香时光
自然风景与旅行灵感
幸福生活每日小贴士
清晨森林里的阳光故事
传统文化与现代生活
寻找城市中的美好瞬间
春季花园生活记录
探索山川自然之美
快乐家庭周末时光
生活中的创意小发现
秋日森林摄影笔记
现代家居设计灵感
每日阅读带来的快乐
城市夜景摄影日记
简单健康的生活方式
古老建筑文化探索
夏天海边的温暖记忆
发现自然中的奇妙世界
午后咖啡与阅读时光
美食文化探索之旅
未来城市生活观察
山间清晨旅行日记
温馨家居生活分享
四季花草种植笔记
艺术世界里的奇妙发现
湖边安静的下午时光
探索历史留下的故事
快乐旅行生活指南
冬日阳光下的温暖生活
创意手工制作分享
绿色生活与自然探索
星空下的美丽夜晚
春日湖畔的宁静时光
城市花园生活新发现
森林深处的自然故事
清晨咖啡与阅读日记
传统艺术文化探索之旅
简单快乐的家庭生活
秋日山林摄影故事
探索生活中的创意灵感
现代城市建筑观察
夏日海岸美丽风景
每日健康生活小知识
寻找城市隐藏的故事
花园里的四季色彩
世界美食文化分享
温暖午后的阅读时间
探索山川湖泊之美
创意家居装饰灵感
冬日阳光生活记录
历史建筑背后的故事
绿色自然生活方式
夜晚星空摄影笔记
美好周末旅行回忆
发现艺术世界的魅力
乡村生活自然风光
每日生活创意分享
古老文化探索笔记
海边清晨散步日记
现代科技与未来生活
森林小屋的温暖故事
旅行路上的美丽风景
春日清晨的花园故事
森林深处的宁静生活
城市夜晚摄影记录
探索传统文化的魅力
夏季海边生活日记
简单健康生活新方式
秋天山谷里的美丽风景
温暖家庭生活分享
现代艺术与创意空间
湖边午后的阅读时光
发现生活中的小惊喜
四季花园种植笔记
世界美食文化探索
快乐周末旅行故事
自然世界里的奇妙发现
冬日阳光与温暖时光
古老建筑历史故事
山间小路旅行随笔
未来科技生活观察
清晨咖啡生活随想
绿色自然与美好生活
城市街头艺术发现
星空下的安静夜晚
春日山谷里的美好时光
城市清晨生活随笔
探索森林深处的秘密
传统美食制作日记
温暖阳光下的花园
现代生活创意分享
秋日湖畔摄影记录
寻找城市里的文化故事
快乐家庭周末生活
自然风景旅行随笔
午后阅读与安静时光
探索艺术世界的色彩
冬季森林生活故事
每天发现新的生活灵感
古老街道历史漫步
健康饮食与快乐生活
海边日落摄影故事
创意家居生活空间
星空下的宁静夜晚
四季自然变化记录
未来科技生活探索
山间小屋的温馨故事
晨曦中的绿色山谷
城市街角的温暖故事
春天花园里的新发现
传统手工艺术的魅力
夏日森林散步日记
现代家庭生活灵感
山间清晨的宁静时光
发现世界文化之美
快乐生活每日小记录
秋日湖边摄影故事
自然风光探索笔记
午后咖啡与书香时光
城市建筑创意观察
四季花草生活笔记
美食文化与生活故事
冬日暖阳下的回忆
寻找古老街道的故事
绿色生活创意指南
海边黄昏摄影随笔
艺术世界里的色彩故事
简单健康的每日生活
星空下的森林小屋
探索历史文化的足迹
雨后花园的清新时刻
春日河畔的悠闲时光
古城街巷里的文化故事
清晨森林自然观察笔记
家庭花园四季生活记录
寻找生活中的艺术灵感
秋日山间旅行故事
现代家居创意设计分享
午后阳光与阅读时刻
探索世界美食文化
夏夜星空摄影日记
城市公园里的绿色生活
传统工艺背后的故事
海边黄昏的温暖记忆
简单快乐的日常生活
山谷里的自然风景记录
城市建筑与创意空间
冬日午后的咖啡时光
探索历史文化的记忆
雨后森林里的清新世界
创意生活每日小发现
湖边小屋的温馨故事
绿色植物与家庭生活
夜晚城市灯光摄影记录
健康饮食与生活方式
四季自然色彩观察
快乐周末家庭日记
古老艺术文化探索
清风中的田园生活故事
春天花园里的清新早晨
森林小路上的自然故事
城市夜色中的温暖灯光
传统文化艺术探索笔记
夏日湖边的悠闲时光
现代生活中的创意灵感
秋季森林摄影生活记录
快乐家庭的周末故事
探索古老建筑的魅力
午后咖啡与阅读随想
自然世界里的奇妙色彩
简单健康生活每日分享
山谷清晨旅行摄影日记
创意家居空间设计灵感
世界美食文化生活记录
冬日阳光下的美好时刻
城市街角艺术发现之旅
绿色植物与生活美学
海边黄昏的宁静记忆
四季自然风景观察笔记
古老街道里的历史故事
星空下的安静阅读时光
雨后山林的清新世界
春日山野里的清新空气
城市清晨的生活故事
森林深处的绿色世界
传统文化艺术生活笔记
夏日湖边摄影时光
现代家庭创意生活指南
秋天森林里的温暖故事
寻找自然世界的色彩
快乐周末阅读生活记录
古老街道文化探索日记
午后花园里的宁静时刻
山川湖泊自然摄影分享
健康饮食与简单生活
海边黄昏旅行随笔
未来科技生活新发现
冬日咖啡与书香时光
创意家居设计生活灵感
四季花草自然观察笔记
城市建筑背后的故事
雨后森林里的漫步时光
世界美食与文化探索
星空下的乡村生活故事
艺术世界里的创意发现
清晨河边的安静时光
绿色生活每日小知识
古镇历史文化漫步记录
温暖阳光里的幸福生活
春日花园里的悠闲时光
城市夜色与灯光故事
森林清晨自然观察笔记
传统手工文化探索之旅
夏日湖畔的温暖记忆
创意家庭生活新灵感
秋季山林摄影随笔
寻找古老街巷的故事
午后阅读与咖啡生活
自然世界中的美丽色彩
健康生活每日新发现
海边黄昏摄影故事
现代城市建筑艺术观察
冬日森林里的宁静时光
世界美食与文化生活
山间小屋的温馨故事
四季花草种植生活记录
艺术世界里的奇妙发现
清晨河畔的绿色风景
简单快乐家庭生活日记
历史建筑文化漫步记录
星空下的安静阅读时刻
绿色生活与自然探索
雨后城市的清新早晨
创意家居设计生活分享
乡村田野里的美好时光
古典艺术与现代生活
湖边日落的温暖故事
春日森林里的清晨阳光
城市生活中的艺术发现
秋日花园的温暖故事
探索古老文化的魅力
湖边午后的阅读时光
现代家庭生活创意分享
夏日山谷自然摄影日记
简单快乐的每日生活
传统手工艺术探索笔记
城市夜晚的美丽灯光
绿色生活与自然故事
冬日咖啡与温暖时刻
世界美食文化生活记录
山间小路旅行随笔
星空下的宁静生活
创意家居空间设计灵感
四季花草自然观察记录
雨后森林里的清新空气
历史建筑背后的文化故事
清晨河畔的悠闲时光
艺术世界里的奇妙色彩
乡村田野的美好记忆
健康生活每日小知识
海边日落摄影生活日记
古镇街巷文化漫步
花园里的快乐生活故事
探索自然世界的新发现
午后阳光里的安静时光
现代城市生活观察笔记
春日湖边的悠闲生活
城市街角的艺术故事
清晨森林里的自然声音
传统文化生活探索笔记
夏日花园摄影故事
现代家庭创意空间
秋日山谷里的温暖阳光
寻找生活中的美好瞬间
午后咖啡与书香生活
世界美食文化探索日记
冬日森林的宁静故事
绿色植物与家居生活
山间小路旅行随想
古老建筑里的历史记忆
快乐周末生活记录
星空下的安静阅读时间
四季自然色彩摄影笔记
创意艺术与生活灵感
雨后花园里的清新时刻
简单健康的每日生活
城市夜晚灯光摄影记录
乡村田园里的幸福时光
探索艺术世界的新发现
海边清晨的温柔阳光
花草世界自然观察日记
古镇街巷里的生活故事
春日森林里的温暖阳光
城市街头艺术生活记录
清晨湖畔的宁静故事
传统文化与生活美学
秋季山谷自然摄影笔记
现代家庭创意生活分享
夏日花园里的美好时光
探索古老艺术文化故事
午后咖啡与阅读生活
绿色植物自然观察日记
冬日小屋里的温馨故事
世界美食文化探索笔记
星空下的安静阅读时光
四季花草生活新发现
雨后森林的清新世界
创意家居设计灵感分享
海边黄昏的浪漫风景
古镇街道里的历史记忆