Ana içeriğe atla

SlickGrid Biçimlendirici Kullanma

 

Bu bölüm TypeScript için güncellenmeyi bekliyor

SlickGrid örneğinin %Complete sütunundaki tamamlanma yüzdesi çubuğu biçimlendiricisi gibi bir SlickGrid biçimlendirici işlevini kullanmak için :

http://mleibman.github.io/SlickGrid/examples/example2-formatters.html

Gerekli Kaynakları Dahil Etme

Öncelikle bu formatlayıcıları içeren javascript dosyasını _LayoutHead.cshtml dosyanıza ekleyin (MyProject.Web/Views/Shared/_LayoutHead.cshtml):

//...
@Html.Script("~/Scripts/jquery.slimscroll.js")
@Html.Script("~/Scripts/SlickGrid/slick.formatters.js")
@Html.Script("~/Scripts/Site/MovieTutorial.Script.js")
//...

Ayrıca example.css'den aşağıdaki CSS'yi eklemeniz gerekir (site.less'e eklenebilir):

.percent-complete-bar {
  display: inline-block;
  height: 6px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
}

Serenity DataGrid Biçimlendiricisini Bildirme

Diyelim ki Slick.Formatters.PercentCompleteBar biçimlendiricisini kullanmak istemediğimiz CourseCompletion sütununa sahip bir ÖğrenciCourseGrid'imiz var .

public class StudentCourseColumns
{
    //...
    [Width(200)]
    public Decimal CourseCompletion { get; set; }
}

Sunucu tarafında bir SlickGrid formatlayıcıya referans vermek için Serenity ızgaralarına yönelik bir formatlayıcı türü bildirmeniz gerekir.

MyApplication.Script projesinde, örneğin ÖğrenciCourseGrid.cs'nin yanında, içeriği olan bir dosya (PercentCompleteBarFormatter.cs) tanımlayın:

using Serenity;
using System;

namespace MyApplication
{
    public class PercentCompleteBarFormatter : ISlickFormatter
    {
        private SlickColumnFormatter formatter = 
            Type.GetType("Slick.Formatters.PercentCompleteBar").As<SlickColumnFormatter>();

        public string Format(SlickFormatterContext ctx)
        {
            return formatter(ctx.Row, ctx.Cell, ctx.Value, ctx.Column, ctx.Item);
        }
    }
}

MyApplication'ı kök ad alanınızla (çözüm adı) değiştirin.

Artık sunucu tarafında referans verebilirsiniz:

public class StudentCourseColumns
{
    //...
    [FormatterType("PercentCompleteBar"), Width(200)]
    public Decimal CourseCompletion { get; set; }
}

Projenizi yeniden oluşturduğunuzda CourseCompletion sütununun tıpkı SlickGrid örneğinde olduğu gibi bir yüzde çubuğuna sahip olduğunu göreceksiniz.

Çalışmak için Intellisense ve Derleme Zamanını Kontrol Etme

PercentCompleteBarFormatter sunucu tarafı için zeka elde etmek amacıyla (sihirli dizeleri kullanmaktan kaçınmak için), T4 şablonlarını dönüştürmelisiniz (dönüştürmeden önce çözümün başarılı bir şekilde oluşturulduğundan emin olun).

Bundan sonra buna şu sunucu tarafı gibi başvurabilirsiniz:

public class StudentCourseColumns
{
    //...
    [PercentCompleteBarFormatter, Width(200)]
    public Decimal CourseCompletion { get; set; }
}

Ayrıca SlickGrid sütun biçimlendirici işlevini, bir Serenity biçimlendirici sınıfı tanımlamadan doğrudan komut dosyası yan kodunda ayarlamak da mümkündür; örneğin, ÖğrenciCourseGrid.cs'de GetColumns yöntemini geçersiz kılarak :

    protected override List<SlickColumn> GetColumns()
    {
        var columns = base.GetColumns();
        columns.Single(x => x.Field == "CourseCompletion ").Formatter = 
            Type.GetType("Slick.Formatters.PercentCompleteBar").As<SlickColumnFormatter>();
        return columns;
    }

Bu yeniden kullanılamaz ancak sizi biçimlendirici sınıfı tanımlamaktan kurtarır.

Bu blogdaki popüler yayınlar

Code generetor ile oluşturulan dosyaların açıklamaları

  1. Sunum (Presentation/UI) Katmanı (Kullanıcı arayüzü - HTML, TypeScript, Dialog, Grid) 🔹 XYZPage.ts 📌 Ne İşe Yarar? Kullanıcı arayüzünün TypeScript tarafındaki tanımıdır. Serenity'nin Dialog ve Grid bileşenlerini içeren bir TypeScript sınıfıdır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcıdan veri almak ve göstermek için kullanılır. 🔹 XYZGrid.ts 📌 Ne İşe Yarar? Tablo (Grid) yapısını oluşturur ve verileri listeler. Filtreleme, sıralama ve sayfalama işlemleri için kullanılır. columnsKey ile hangi kolonların gösterileceğini belirler. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kullanıcının verileri listelediği ve etkileşimde bulunduğu yerdir. 🔹 XYZDialog.ts 📌 Ne İşe Yarar? CRUD (Create, Read, Update, Delete) işlemlerini yöneten pencere (modal) bileşeni Kullanıcı form aracılığıyla veri ekler, günceller veya siler. XYZForm.cs ile birlikte çalışır. 📌 Çok Katmanlı Mimarideki Yeri: Sunum Katmanı (Presentation Layer) Kull...

Serenity Web Nedir?

   Serenity  , açık kaynak teknolojileri üzerine kurulu bir ASP.NET Core/TypeScript uygulama platformudur. Standart kodlardan kaçınarak, tekrarlanan görevlere harcanan zamanı azaltarak ve en iyi yazılım tasarımı uygulamalarını uygulayarak bakım maliyetlerini düşürürken geliştirmeyi kolaylaştırmayı amaçlamaktadır. Serene  , Serenity platformunu temel alan ücretsiz, açık kaynaklı başlangıç ​​uygulama şablonumuzdur.  Bu dokümantasyon aracılığıyla eğitimimiz ve diğer örnekler için esas olarak Serene'yi kullanacağız. StartSharp  , ücretli müşterilerimize sunduğumuz premium uygulama şablonudur.  Daha gösterişli bir temaya ve bazı ekstra özelliklere  ek olarak Serene'deki her şeyi içerir  .  İkisi de Serenity platformunu temel alıyor. Adında Ne Var Serenity'nin sözlük anlamları  barış  ,  rahatlık  ve  sakinliktir  . Serenity ile bunu başarmaya çalışıyoruz.  Umarız yükledikten ve kullandıktan sonra siz de bu ş...