Ana içeriğe atla

Kalıcı Ayarlar

 

Serenity 2.1.5, aşağıdaki ayrıntıları içeren ızgara ayarlarını sürdürme yeteneğini sundu:

  • Görünür Sütunlar ve Görüntüleme Sırası
  • Sütun Genişlikleri
  • Sıralanmış Sütunlar
  • Gelişmiş Filtreler (sağ alttaki Filtreyi Düzenle bağlantısıyla oluşturulanlar)
  • Hızlı Filtreler (yazıldığı an itibariyle, henüz mevcut değil)
  • Dahil Edilme Durumu Silindi Geçişi

Varsayılan olarak ızgaralar hiçbir şeyi otomatik olarak sürdürmez.

Böylece bazı sütunları gizleyip Siparişler sayfasından ayrılırsanız, geri döndüğünüzde o gizli sütunların tekrar görünür hale geldiğini göreceksiniz.

Kalıcılığı tüm ızgaralar için veya ayarlarını hatırlamasını istediğiniz tek tek ızgaralar için açmanız gerekir.

Kalıcılığı Varsayılan Olarak Açma

DataGrid'in DefaultPersistanceStorage adında statik bir yapılandırma parametresi vardır Bu parametre, varsayılan olarak ızgaraların ayarlarını otomatik olarak nereye kaydedeceğini kontrol eder. Başlangıçta null'dur.

ScriptInitialization.ts'de, tüm ızgaralar için kalıcılığı varsayılan olarak aşağıdaki gibi açabilirsiniz:

namespace Serene.ScriptInitialization {
    Q.Config.responsiveDialogs = true;
    Q.Config.rootNamespaces.push('Serene');

    Serenity.DataGrid.defaultPersistanceStorage = window.sessionStorage;
}

Bu, ayarları, herhangi bir tarayıcı penceresi açık kalırken verileri koruyan bir anahtar/değer sözlüğü olan tarayıcı oturumu depolama alanına kaydeder. Kullanıcı tüm tarayıcı pencerelerini kapattığında tüm ayarlar kaybolacaktır.

Başka bir seçenek de tarayıcının yerel depolama alanını kullanmaktır. Bu, tarayıcı yeniden başlatmaları arasındaki ayarları korur.

Serenity.DataGrid.defaultPersistanceStorage = window.localStorage;

İki seçenekten herhangi birini kullanarak ızgaralar, sayfa yeniden yüklemeleri arasında ayarlarını hatırlamaya başlayacaktır.

Birden Çok Kullanıcı Tarafından Paylaşılan Bir Tarayıcıyı Kullanma

Hem sessionStorage hem de localStorage tarayıcı kapsamına sahiptir, dolayısıyla bir tarayıcı birden fazla kullanıcı tarafından paylaşılıyorsa aynı ayarlara sahip olurlar.

Bir kullanıcı bazı ayarları değiştirip oturumu kapatırsa ve diğeri oturum açarsa, ikinci kullanıcı ilk kullanıcının ayarlarıyla başlayacaktır (oturum kapatıldığında localStorage'ı temizlemediğiniz sürece)

Bu uygulamanız için bir sorunsa özel bir sağlayıcı yazmayı deneyebilirsiniz:

namespace Serene {
    export class UserLocalStorage implements Serenity.SettingStorage {
        getItem(key: string): string {
            return window.localStorage.getItem(
                Authorization.userDefinition.Username + ":" + key);
        }

        setItem(key: string, value: string): void {
            window.localStorage.setItem(
                Authorization.userDefinition.Username + ":" + key, value);
        }
    }
}

//...
Serenity.DataGrid.defaultPersistanceStorage = new UserLocalStorage();

Lütfen bunun herhangi bir güvenlik sağlamadığını unutmayın. Yalnızca kullanıcıların ayrı ayarlara sahip olmasına olanak tanır.

Izgara Türüne Göre Kalıcı Depolamayı Ayarlama

Kalıcılığı açmak veya belirli bir ızgara için hedef depolamayı değiştirmek için getPersistanceStorage yöntemini geçersiz kılın:

namespace Serene.Northwind {
    //...
    export class OrderGrid extends Serenity.EntityGrid<OrderRow, any> {
        //...
        
        protected getPersistanceStorage(): Serenity.SettingStorage {
            return window.localStorage;
        }
    }
}

Bu yöntemden null değerini döndürerek de bir grid sınıfının kalıcılığını kapatabilirsiniz .

Hangi Ayar Türlerinin Kaydedildiğini Belirleme

Varsayılan olarak, görünür sütunlar, genişlikler, filtreler vb. gibi başlangıçta not edilen tüm ayarlar kaydedilir. Belirli ayarları sürdürmemeyi / geri yüklememeyi seçebilirsiniz. Bu, gridPersistanceFlags yöntemiyle kontrol edilir :

namespace Serene.Northwind {
    //...
    export class OrderGrid extends Serenity.EntityGrid<OrderRow, any> {
        //...
        
        protected gridPersistanceFlags(): GridPersistanceFlags {
            return {
                columnWidths: false // dont persist column widths;
            }
        }
    }
}

İşte tam bayrak seti:

interface GridPersistanceFlags {
    columnWidths?: boolean;
    columnVisibility?: boolean;
    sortColumns?: boolean;
    filterItems?: boolean;
    quickFilters?: boolean;
    includeDeleted?: boolean;
}

Ayarlar Kaydedildiğinde / Geri Yüklendiğinde

Aşağıdaki gibi bir ızgaraya sahip bir şeyi değiştirdiğinizde ayarlar otomatik olarak kaydedilir:

  • Sütun Seçici iletişim kutusuyla görünür sütunları seçme
  • Bir sütunu manuel olarak yeniden boyutlandırma
  • Gelişmiş filtreyi düzenleme
  • Bir sütunu sürüklemek, konumu değiştirmek
  • Sıralanmış sütunları değiştirme

Ayarlar, ızgara oluşturulduktan hemen sonra ilk sayfa yüklendiğinde geri yüklenir.

Veritabanında Kalıcı Ayarlar (Kullanıcı Tercihleri ​​Tablosu)

Serene 2.1.5, kalıcı depolama alanı olarak kullanabileceğiniz bir Kullanıcı Tercihleri ​​tablosuyla birlikte gelir. Bu depolamayı kullanmak için diğer depolama türlerine benzer şekilde depolama alanı olarak ayarlamanız yeterlidir.

/// <reference path="../Common/UserPreference/UserPreferenceStorage.ts" />

Serenity.DataGrid.defaultPersistanceStorage = new Common.UserPreferenceStorage();

Referans ifadesini eklemeyi unutmayın, aksi takdirde TypeScript'in sıralamada sorunları olacağından çalışma zamanı hatalarınız olur.

VEYA

namespace Serene.Northwind {
    //...
    export class OrderGrid extends Serenity.EntityGrid<OrderRow, any> {
        //...
        
        protected getPersistanceStorage(): Serenity.SettingStorage {
            return new Common.UserPreferenceStorage();
        }
    }
}

Ayarları Manuel Olarak Kaydetme / Geri Yükleme

Ayarları manuel olarak kaydetmeniz/geri yüklemeniz gerekiyorsa aşağıdaki yöntemleri kullanabilirsiniz:

protected getCurrentSettings(flags?: GridPersistanceFlags): PersistedGridSettings;
protected restoreSettings(settings?: PersistedGridSettings, flags?: GridPersistanceFlags): void;

Bunlar DataGrid'in korumalı yöntemleridir, dolayısıyla yalnızca alt sınıflardan çağrılabilir.

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 ş...