Grid Filtering এবং Sorting

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Grid Panel এবং Data Management |

ExtJS তে গ্রিড (Grid) একটি খুবই শক্তিশালী কম্পোনেন্ট, যা ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়। গ্রিডের মধ্যে ডেটা ফিল্টারিং এবং সোর্টিং করার মাধ্যমে ইউজারদের জন্য ডেটা বিশ্লেষণ এবং ম্যানিপুলেশন করা সহজ হয়। ExtJS গ্রিডে ফিল্টারিং এবং সোর্টিং ফিচারগুলো বিল্ট-ইন ভাবে প্রদান করে, যা দ্রুত এবং কার্যকরভাবে কাজ করতে সহায়ক।

গ্রিড ফিল্টারিং (Grid Filtering)

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


১. Grid Filtering সক্রিয় করা

Ext.grid.Panel এর জন্য filters প্লাগইন ব্যবহার করে গ্রিডের মধ্যে ফিল্টারিং সক্রিয় করা হয়। এর মাধ্যমে, আপনি গ্রিডের কলামগুলোর উপর ফিল্টার অ্যাপ্লাই করতে পারেন।

উদাহরণ: Grid Filtering সেটআপ

Ext.create('Ext.grid.Panel', {
    title: 'User List with Filtering',
    renderTo: Ext.getBody(),
    store: {
        fields: ['id', 'name', 'email', 'age'],
        data: [
            { id: 1, name: 'John Doe', email: 'john@example.com', age: 28 },
            { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 34 },
            { id: 3, name: 'Sam Green', email: 'sam@example.com', age: 45 },
            { id: 4, name: 'Anna Blue', email: 'anna@example.com', age: 25 }
        ]
    },
    plugins: [
        {
            ptype: 'gridfilters',  // ফিল্টার প্লাগইন ব্যবহার
            filters: [
                { dataIndex: 'name', type: 'string' },   // নামের জন্য স্ট্রিং ফিল্টার
                { dataIndex: 'age', type: 'numeric' }    // বয়সের জন্য নাম্বার ফিল্টার
            ]
        }
    ],
    columns: [
        { text: 'ID', dataIndex: 'id', flex: 1 },
        { text: 'Name', dataIndex: 'name', flex: 2, filter: 'string' },
        { text: 'Email', dataIndex: 'email', flex: 3 },
        { text: 'Age', dataIndex: 'age', flex: 1, filter: 'numeric' }
    ]
});

ব্যাখ্যা:

  • plugins: [{ ptype: 'gridfilters' }]: এখানে gridfilters প্লাগইন ব্যবহার করে গ্রিডে ফিল্টারিং সক্রিয় করা হয়েছে।
  • filters: প্রতিটি কলামের জন্য ফিল্টার টাইপ নির্ধারণ করা হয়েছে, যেমন string ফিল্টার (নাম কলামের জন্য) এবং numeric ফিল্টার (বয়স কলামের জন্য)।

২. Grid Sorting (সোর্টিং)

গ্রিডের কলামগুলোর উপর ডেটা সোর্ট করতে, ExtJS sortable কনফিগারেশন ব্যবহার করে। এর মাধ্যমে আপনি কলামের হেডারে ক্লিক করলেই ডেটা সোর্ট করতে পারবেন, এবং এটি ASCENDING (বর্ধমান) বা DESCENDING (হ্রাসমান) অর্ডারে সজ্জিত হবে।

উদাহরণ: Grid Sorting সক্রিয় করা

Ext.create('Ext.grid.Panel', {
    title: 'User List with Sorting',
    renderTo: Ext.getBody(),
    store: {
        fields: ['id', 'name', 'email', 'age'],
        data: [
            { id: 1, name: 'John Doe', email: 'john@example.com', age: 28 },
            { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 34 },
            { id: 3, name: 'Sam Green', email: 'sam@example.com', age: 45 },
            { id: 4, name: 'Anna Blue', email: 'anna@example.com', age: 25 }
        ]
    },
    columns: [
        { text: 'ID', dataIndex: 'id', flex: 1, sortable: true },  // ID কলামে সোর্টিং সক্ষম
        { text: 'Name', dataIndex: 'name', flex: 2, sortable: true },  // Name কলামে সোর্টিং সক্ষম
        { text: 'Email', dataIndex: 'email', flex: 3 },
        { text: 'Age', dataIndex: 'age', flex: 1, sortable: true }   // Age কলামে সোর্টিং সক্ষম
    ]
});

ব্যাখ্যা:

  • sortable: true: এই কনফিগারেশনটি প্রতিটি কলামে সজ্জিত করা হয়েছে যাতে ঐ কলামে ক্লিক করার মাধ্যমে সorting সম্ভব হয়।

৩. Grid Filtering এবং Sorting একত্রে ব্যবহার করা

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

উদাহরণ: Grid Filtering এবং Sorting একত্রে

Ext.create('Ext.grid.Panel', {
    title: 'User List with Filtering and Sorting',
    renderTo: Ext.getBody(),
    store: {
        fields: ['id', 'name', 'email', 'age'],
        data: [
            { id: 1, name: 'John Doe', email: 'john@example.com', age: 28 },
            { id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 34 },
            { id: 3, name: 'Sam Green', email: 'sam@example.com', age: 45 },
            { id: 4, name: 'Anna Blue', email: 'anna@example.com', age: 25 }
        ]
    },
    plugins: [
        {
            ptype: 'gridfilters',
            filters: [
                { dataIndex: 'name', type: 'string' },   
                { dataIndex: 'age', type: 'numeric' }    
            ]
        }
    ],
    columns: [
        { text: 'ID', dataIndex: 'id', flex: 1, sortable: true },
        { text: 'Name', dataIndex: 'name', flex: 2, filter: 'string', sortable: true },
        { text: 'Email', dataIndex: 'email', flex: 3 },
        { text: 'Age', dataIndex: 'age', flex: 1, filter: 'numeric', sortable: true }
    ]
});

এখানে, filters প্লাগইন এবং sortable: true একসাথে ব্যবহার করা হয়েছে যাতে ইউজাররা কলামগুলির মাধ্যমে ডেটা ফিল্টার এবং সজ্জিত করতে পারে।


সারাংশ

  • Grid Filtering: ExtJS গ্রিডের মধ্যে ফিল্টারিং করার জন্য gridfilters প্লাগইন ব্যবহার করতে হয়, যা বিভিন্ন ধরনের ফিল্টার (যেমন স্ট্রিং, নাম্বার) সমর্থন করে।
  • Grid Sorting: গ্রিডের কলামগুলোতে সorting সক্ষম করার জন্য sortable: true কনফিগারেশন ব্যবহার করা হয়।
  • Filter এবং Sort একত্রে: আপনি ফিল্টারিং এবং সorting একসাথে ব্যবহার করতে পারেন, যা ইউজারকে ডেটা অনুসন্ধান এবং সাজানোর জন্য শক্তিশালী টুলস প্রদান করে।

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

Content added By
Promotion