Filters, Sorters, এবং Pagination

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Data Package এবং Stores |

ExtJS ডেটা ম্যানেজমেন্টের জন্য শক্তিশালী টুলস প্রদান করে, যার মাধ্যমে আপনি ডেটা ফিল্টার, সোর্ট, এবং পেজিনেশন করতে পারেন। এগুলি ডেটার উপর নিয়ন্ত্রণ নিয়ে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এই টুলগুলো ডেটা স্টোরের সাথে কাজ করে এবং ব্যবহারকারীদের জন্য কার্যকরভাবে ডেটা পরিচালনা করতে সক্ষম।


১. Filters (ফিল্টার)

Filters ডেটার মধ্যে নির্দিষ্ট মান অনুসারে ফিল্টার করার জন্য ব্যবহৃত হয়। ফিল্টারগুলি ডেটাকে একটি নির্দিষ্ট শর্তে আনা এবং কমপ্লেক্স কন্ডিশনগুলো প্রয়োগ করা সহজ করে তোলে।

Filter ব্যবহার করার উদাহরণ:

Ext.create('Ext.data.Store', {
    storeId: 'userStore',
    fields: ['id', 'name', 'email'],
    data: [
        { id: 1, name: 'John Doe', email: 'john.doe@example.com' },
        { id: 2, name: 'Jane Smith', email: 'jane.smith@example.com' },
        { id: 3, name: 'Jack White', email: 'jack.white@example.com' }
    ],
    filters: [
        {
            property: 'name',
            value: 'John' // 'John' নামের সাথে মিলবে এমন সব ডেটা ফিল্টার করবে
        }
    ]
});

এখানে, filters কনফিগারেশন ব্যবহার করা হয়েছে যেখানে name ফিল্ডে John শব্দটি থাকা সব ডেটা স্টোরে থাকা অন্য ডেটা থেকে আলাদা করা হবে।

ফিল্টার অ্যাপ্লাই করা এবং আপডেট করা:

var store = Ext.getStore('userStore');

// ফিল্টার যোগ করা
store.filter({
    property: 'email',
    value: 'example.com'  // 'example.com' ইমেইল ডোমেইন ফিল্টার করবে
});

// ফিল্টার মুছে ফেলা
store.clearFilter();

২. Sorters (সোর্টার্স)

Sorters ডেটা স্টোরে থাকা ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজাতে ব্যবহৃত হয়। আপনি একাধিক সোর্টিং প্যারামিটারও ব্যবহার করতে পারেন, যেমন নাম বা বয়সের ভিত্তিতে ডেটা সোর্ট করা।

Sorter ব্যবহার করার উদাহরণ:

Ext.create('Ext.data.Store', {
    storeId: 'userStore',
    fields: ['id', 'name', 'age'],
    data: [
        { id: 1, name: 'John Doe', age: 30 },
        { id: 2, name: 'Jane Smith', age: 25 },
        { id: 3, name: 'Jack White', age: 35 }
    ],
    sorters: [
        {
            property: 'age', // 'age' এর উপর সোর্ট করা হবে
            direction: 'ASC'  // ASC (Ascending) বা DESC (Descending)
        }
    ]
});

এখানে sorters কনফিগারেশন ব্যবহার করে age ফিল্ডের উপর ASC (Ascending) অর্ডারে ডেটা সাজানো হয়েছে।

সোর্টিং পরিবর্তন এবং আপডেট করা:

var store = Ext.getStore('userStore');

// নতুন সোর্টার যোগ করা
store.sort('name', 'ASC');  // নামের উপর Ascending সোর্ট

// সোর্টিং মুছে ফেলা
store.clearSort();

৩. Pagination (পেজিনেশন)

Pagination ডেটা স্টোরের মাধ্যমে ডেটাকে বিভিন্ন পেজে ভাগ করার জন্য ব্যবহৃত হয়। এটি বড় ডেটাসেটের ক্ষেত্রে ব্যবহারকারীদের পেজিং সুবিধা দেয় যাতে তারা এক পেজে শুধু একটি নির্দিষ্ট পরিমাণ ডেটা দেখতে পারে।

Pagination ব্যবহার করার উদাহরণ:

Ext.create('Ext.data.Store', {
    storeId: 'userStore',
    fields: ['id', 'name', 'email'],
    pageSize: 10,  // প্রতি পেজে ১০টি আইটেম দেখাবে
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            rootProperty: 'data'
        }
    },
    data: {
        'data': [
            { id: 1, name: 'John Doe', email: 'john@example.com' },
            { id: 2, name: 'Jane Smith', email: 'jane@example.com' },
            { id: 3, name: 'Jack White', email: 'jack@example.com' },
            // আরও ডেটা
        ]
    },
    autoLoad: true
});

এখানে pageSize কনফিগারেশন 10 আইটেম প্রতি পেজের জন্য সেট করা হয়েছে। যখন আপনি এই স্টোরের সাথে পেজিনেশন ব্যবহার করবেন, তখন স্টোরটি ডেটা লোড করবে এবং পেজিং কন্ট্রোল প্রদর্শিত হবে।

Pagination Control ব্যবহার করা:

Ext.create('Ext.PagingToolbar', {
    store: Ext.getStore('userStore'),
    displayInfo: true, // পেজিনেশন তথ্য প্রদর্শন করবে
    displayMsg: '{0} - {1} of {2}',
    emptyMsg: 'No data to display',
    renderTo: Ext.getBody()
});

এই PagingToolbar ব্যবহারকারীদের জন্য পেজিং কন্ট্রোল প্রদর্শন করবে, যেখানে তারা সঠিক পেজে যেতে পারবেন এবং ডেটা দেখতে পারবেন।


৪. Filters, Sorters, এবং Pagination একত্রিত করা

Filters, Sorters, এবং Pagination একত্রিত করে আরও উন্নত এবং ইন্টারঅ্যাকটিভ ডেটা ভিউ তৈরি করা যায়। আপনি এই তিনটি ফিচার একসাথে ব্যবহার করে ডেটাকে ডাইনামিকভাবে ফিল্টার, সোর্ট এবং পেজিনেট করতে পারবেন।

উদাহরণ: Filters, Sorters, এবং Pagination একত্রিত করা

Ext.create('Ext.data.Store', {
    storeId: 'userStore',
    fields: ['id', 'name', 'email', 'age'],
    pageSize: 5,
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            rootProperty: 'data'
        }
    },
    data: {
        'data': [
            { id: 1, name: 'John Doe', email: 'john@example.com', age: 30 },
            { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 25 },
            { id: 3, name: 'Jack White', email: 'jack@example.com', age: 35 },
            { id: 4, name: 'Alice Johnson', email: 'alice@example.com', age: 28 },
            { id: 5, name: 'Bob Brown', email: 'bob@example.com', age: 40 },
            { id: 6, name: 'Charlie Green', email: 'charlie@example.com', age: 50 }
        ]
    },
    filters: [
        {
            property: 'age',
            value: 30
        }
    ],
    sorters: [
        {
            property: 'age',
            direction: 'ASC'
        }
    ],
    autoLoad: true
});

// Paging toolbar setup
Ext.create('Ext.PagingToolbar', {
    store: Ext.getStore('userStore'),
    displayInfo: true,
    displayMsg: '{0} - {1} of {2}',
    emptyMsg: 'No data to display',
    renderTo: Ext.getBody()
});

এখানে:

  • Filters: age 30 এর বেশি হতে হবে এমন ডেটা ফিল্টার করা হচ্ছে।
  • Sorters: age ফিল্ডে ASC (ascending) অর্ডারে সোর্ট করা হচ্ছে।
  • Pagination: প্রতি পেজে ৫টি আইটেম প্রদর্শন করছে।

সারাংশ

  • Filters ডেটাকে নির্দিষ্ট শর্ত অনুযায়ী ফিল্টার করতে সহায়ক।
  • Sorters ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজাতে ব্যবহৃত হয়।
  • Pagination ডেটাকে পেজিনেট করে বড় ডেটাসেটকে ছোট অংশে ভাগ করে দেখানোর জন্য ব্যবহৃত হয়।

এগুলির সমন্বয়ে আপনি খুবই কার্যকরী এবং ইন্টারঅ্যাকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।

Content added By
Promotion