KendoNET.DynamicLinq mengimplementasikan paging server, pemfilteran, pengurutan, pengelompokan, dan agregasi ke Kendo UI melalui Dynamic Linq untuk .Net Core App(1.x ~ 3.x).
Tidak ada
Anda harus menambahkan ObjectToInferredTypesConverter
khusus ke JsonSerializerOptions
Anda karena System.Text.Json
tidak membatalkan serialisasi tipe yang disimpulkan ke properti objek sekarang, lihat kode contoh dan referensi.
Tambahkan paket KendoNET.DynamicLinq NuGet ke proyek Anda.
Konfigurasikan Kendo DataSource Anda untuk mengirimkan opsinya sebagai JSON.
parameterMap: fungsi(pilihan, tipe) {kembalikan JSON.stringify(pilihan);}
Konfigurasikan schema
dataSource.
skema: {data: "Data",total: "Total",agregat: "Agregat",grup: "Grup",kesalahan: "Kesalahan"}
Kode lengkapnya seperti di bawah ini.
..... Kode grid kendo lainnya .....dataSumber: {skema:{data: "Data",total: "Total",agregat: "Agregat",grup: "Grup",kesalahan: "Kesalahan", ...},transport: {baca: {url: 'url baca Anda',dataType: 'json',contentType: 'application/json; charset=utf-8',type: 'POST'},buat: {url: 'url buat Anda',dataType: "json",contentType: 'application/json; charset=utf-8',type: 'POST'},parameterMap: function (data, operasi) {return JSON.stringify(data);}},error: function(e) {console.log(e.errors); // Informasi kesalahan Andae.sender.cancelChanges();},pageSize: 20,serverPaging: true,serverFiltering: true,serverSorting: true,...}..... Kode grid kendo lainnya .....
Impor namespace KendoNET.DynamicLinq.
Gunakan metode ekstensi ToDataSourceResult
untuk menerapkan paging, pengurutan, pemfilteran, pengelompokan, dan agregasi.
menggunakan KendoNET.DynamicLinq[WebMethod]Produk DataSourceResult statis publik(int take, int skip, IEnumerable<Sort> sort, Filter filter, IEnumerable<Aggregator> agregat, IEnumerable<Group> groups){using (var northwind = new Northwind()) {return northwind.Products .OrderBy(p => p.ProductID) // EF memerlukan pemesanan untuk paging .Select(p => new ProductViewModel // Gunakan model tampilan untuk menghindari serialisasi properti Entity Framework internal sebagai JSON { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Dihentikan = p.Dihentikan }) .ToDataSourceResult(ambil, lewati, urutkan, filter, agregat, grup);}}
atau dari permintaan Kendo UI
menggunakan KendoNET.DynamicLinq[HttpPost]public IActionResult Products([FromBody] DataSourceRequest requestModel){using (var northwind = new Northwind()){return northwind.Products .Select(p => new ProductViewModel // Gunakan model tampilan untuk menghindari serialisasi properti Entity Framework internal sebagai JSON { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Dihentikan = p.Dihentikan }) .ToDataSourceResult(requestModel.Take, requestModel.Skip, requestModel.Sort, requestModel.Filter, requestModel.Aggregate, requestModel.Group);}}
Ketika opsi filter sisi server diaktifkan dan menerapkan kueri dengan kondisi filter yang berisi kolom tipe DateTime
, maka EntityFramework Core akan memunculkan pengecualian System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting date and/or time from character string
. Kesalahan ini disebabkan oleh masalah umum di beberapa versi EntityFramework Core yang lama. Solusinya adalah menambahkan nilai datetime
ke kolom terkait di DbContext. misalnya
kelas publik MyContext : DbContext{protected override void OnModelCreating(ModelBuilder modelBuilder){..........modelBuilder.Entity<Member>().Property(x => x.UpdateTime).HasColumnType("datetime") ;..........}}
Buka konsol baris perintah
Beralih ke direktori root proyek (srcKendoNET.DynamicLinq).
Jalankan "pemulihan dotnet"
Jalankan "dotnet pack --configuration Release"
Tambahkan <repository type="git" url="https://github.com/linmasaki/KendoNET.DynamicLinq.git" />
ke paket metadata nupkg untuk menampilkan URL repositori di Nuget
KendoNET.DynamicLinq adalah referensi ke Kendo.DynamicLinq milik Ali Sarkis.
Tautan berikut adalah dokumen online Kendo UI (terkait dengan paket ini) dan dapat Anda rujuk.
Kisi UI Kendo
Sumber Data Kendo
Konfigurasi Kendo UI selengkapnya dapat merujuk ke sini