يقوم KendoNET.DynamicLinq بتنفيذ ترحيل الخادم والتصفية والفرز والتجميع والتجميع إلى Kendo UI عبر Dynamic Linq لتطبيق .Net Core (1.x ~ 3.x).
لا أحد
يجب عليك إضافة ObjectToInferredTypesConverter
مخصص إلى JsonSerializerOptions
نظرًا لأن System.Text.Json
لم يلغي تسلسل النوع المستنتج إلى خصائص الكائن الآن، راجع نموذج التعليمات البرمجية والمرجع.
أضف حزمة KendoNET.DynamicLinq NuGet إلى مشروعك.
قم بتكوين Kendo DataSource لإرسال خياراته بتنسيق JSON.
خريطة المعلمة: الوظيفة (خيارات، النوع) {return JSON.stringify (options)؛}
تكوين schema
مصدر البيانات.
المخطط: {البيانات: "بيانات"، الإجمالي: "الإجمالي"، المجاميع: "المجاميع"، المجموعات: "المجموعات"، الأخطاء: "الأخطاء"}
الكود المكتمل مثل أدناه.
..... رمز شبكة كندو آخر ..... مصدر البيانات: {المخطط: {البيانات: "بيانات"، الإجمالي: "الإجمالي"، المجاميع: "المجاميع"، المجموعات: "المجموعات"، الأخطاء: "الأخطاء"، ...}، النقل: {قراءة: {url: 'عنوان url الخاص بك للقراءة'، نوع البيانات: 'json'، contentType: 'application/json؛ charset=utf-8',type: 'POST'},create: {url: 'your create url',dataType: "json"،contentType: 'application/json; charset=utf-8',type: 'POST'},parameterMap: الوظيفة (بيانات، عملية) {return JSON.stringify(data);}},خطأ: الوظيفة(e) {console.log(e.errors); // معلومات الخطأ الخاصة بكe.sender.cancelChanges();},pageSize: 20,serverPaging: true,serverFiltering: true,serverSorting: true,...}..... رمز شبكة كندو آخر .....
قم باستيراد مساحة الاسم KendoNET.DynamicLinq.
استخدم طريقة ملحق ToDataSourceResult
لتطبيق الترحيل والفرز والتصفية والتجميع والتجميع.
باستخدام KendoNET.DynamicLinq[WebMethod]منتجات DataSourceResult الثابتة العامة (int take، intتخطي، IEnumerable<Sort> فرز، عامل تصفية، IEnumerable<Aggregator> مجاميع، IEnumerable<Group> مجموعات) {استخدام (var northwind = new Northwind()) {return northwind.Products .OrderBy(p => p.ProductID) // EF يتطلب طلب الترحيل .Select(p => new ProductViewModel // استخدم نموذج عرض لتجنب تسلسل خصائص Entity Framework الداخلية كـ JSON { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p .UnitPrice، UnitsInStock = p.UnitsInStock، تم التوقف = p.Discontinued }) .ToDataSourceResult(أخذ، تخطي، فرز، تصفية، تجميعات، مجموعات)؛}}
أو من طلب Kendo UI
باستخدام KendoNET.DynamicLinq[HttpPost]public IActionResult Products([FromBody] DataSourceRequest requestModel){using (var northwind = new Northwind()){return northwind.Products .Select(p => new ProductViewModel // استخدم نموذج عرض لتجنب التسلسل خصائص إطار عمل الكيان الداخلي كـ JSON { ProductID = p.ProductID، ProductName = p.ProductName, UnitPrice = p.UnitPrice, UnitsInStock = p.UnitsInStock, Discontinued = p.Discontinued }) .ToDataSourceResult(requestModel.Take, requestModel.Skip, requestModel.Sort, requestModel.Filter, requestModel.Aggregate, requestModel.Group) ;}}
عند تمكين الخيارات القابلة للتصفية من جانب الخادم وتطبيق استعلام بشرط عامل التصفية الذي يحتوي على عمود نوع DateTime
، فإن EntityFramework Core سيطرح استثناء System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting date and/or time from character string
. سبب الخطأ هو مشكلة معروفة في بعض إصدارات EntityFramework Core القديمة. الحل البديل هو إضافة قيمة datetime
إلى العمود ذي الصلة في DbContext. على سبيل المثال
الفئة العامة MyContext : DbContext{protected override void OnModelCreating(ModelBuilder modelBuilder){..........modelBuilder.Entity<Member>().Property(x => x.UpdateTime).HasColumnType("datetime") ;..........}}
فتح وحدة تحكم سطر الأوامر
قم بالتبديل إلى الدليل الجذر للمشروع (srcKendoNET.DynamicLinq).
تشغيل "استعادة الدوت نت"
قم بتشغيل "حزمة الدوت نت - إصدار التكوين"
أضف <repository type="git" url="https://github.com/linmasaki/KendoNET.DynamicLinq.git" />
لحزم البيانات التعريفية لـ nupkg لإظهار عنوان URL للمستودع في Nuget
KendoNET.DynamicLinq هو إشارة إلى Kendo.DynamicLinq الخاص بعلي سركيس.
الروابط التالية هي مستندات Kendo UI عبر الإنترنت (المتعلقة بهذه الحزمة) ويمكنك الرجوع إليها.
شبكة واجهة مستخدم كيندو
مصدر بيانات كيندو
يمكن الرجوع إلى المزيد من تكوينات Kendo UI هنا