ExtJS ডেটা ম্যানেজমেন্টের জন্য শক্তিশালী টুলস প্রদান করে, যার মাধ্যমে আপনি ডেটা ফিল্টার, সোর্ট, এবং পেজিনেশন করতে পারেন। এগুলি ডেটার উপর নিয়ন্ত্রণ নিয়ে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এই টুলগুলো ডেটা স্টোরের সাথে কাজ করে এবং ব্যবহারকারীদের জন্য কার্যকরভাবে ডেটা পরিচালনা করতে সক্ষম।
Filters ডেটার মধ্যে নির্দিষ্ট মান অনুসারে ফিল্টার করার জন্য ব্যবহৃত হয়। ফিল্টারগুলি ডেটাকে একটি নির্দিষ্ট শর্তে আনা এবং কমপ্লেক্স কন্ডিশনগুলো প্রয়োগ করা সহজ করে তোলে।
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 ডেটা স্টোরে থাকা ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজাতে ব্যবহৃত হয়। আপনি একাধিক সোর্টিং প্যারামিটারও ব্যবহার করতে পারেন, যেমন নাম বা বয়সের ভিত্তিতে ডেটা সোর্ট করা।
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 ডেটা স্টোরের মাধ্যমে ডেটাকে বিভিন্ন পেজে ভাগ করার জন্য ব্যবহৃত হয়। এটি বড় ডেটাসেটের ক্ষেত্রে ব্যবহারকারীদের পেজিং সুবিধা দেয় যাতে তারা এক পেজে শুধু একটি নির্দিষ্ট পরিমাণ ডেটা দেখতে পারে।
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 আইটেম প্রতি পেজের জন্য সেট করা হয়েছে। যখন আপনি এই স্টোরের সাথে পেজিনেশন ব্যবহার করবেন, তখন স্টোরটি ডেটা লোড করবে এবং পেজিং কন্ট্রোল প্রদর্শিত হবে।
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 একত্রিত করে আরও উন্নত এবং ইন্টারঅ্যাকটিভ ডেটা ভিউ তৈরি করা যায়। আপনি এই তিনটি ফিচার একসাথে ব্যবহার করে ডেটাকে ডাইনামিকভাবে ফিল্টার, সোর্ট এবং পেজিনেট করতে পারবেন।
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()
});
এখানে:
age
30 এর বেশি হতে হবে এমন ডেটা ফিল্টার করা হচ্ছে।age
ফিল্ডে ASC (ascending) অর্ডারে সোর্ট করা হচ্ছে।এগুলির সমন্বয়ে আপনি খুবই কার্যকরী এবং ইন্টারঅ্যাকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Read more