如何将商店的一部分加载到网格中

时间:2016-06-30 05:57:47

标签: javascript extjs

Ext JS 5.1

我有一个学生管理系统,从1到4有4个班级。所有课程各有4门课程。我把所有课程都称为网格,但我只想打电话给学生同班的课程。 (例如我上四年级,所以我只能看到第四节课程)

如果可能的话,我只想要这样的部分代码:

items: [{
         xtype: 'label',
         flex: 1,
         reference: 'txtClass'
        }]

学生班级参考

items: [
{
    xtype: 'gridpanel',
    flex: 1,
    reference: 'courseList',
    itemId: 'courseList',
    store: 'CourseStore',
    columns: [
        {
            xtype: 'gridcolumn',
            reference: 'lesId',
            itemId: 'lesId',
            dataIndex: 'lesId',
            text: 'DERS KODU'
        },
        {
            xtype: 'gridcolumn',
            reference: 'lesClass',
            itemId: 'lesClass',
            dataIndex: 'lesClass',
            text: 'SINIF'
        },
        {
            xtype: 'gridcolumn',
            reference: 'lesName',
            itemId: 'lesName',
            width: 200,
            dataIndex: 'lesName',
            text: 'DERS ADI'
        },
        {
            xtype: 'gridcolumn',
            reference: 'lesCredit',
            itemId: 'lesCredit',
            dataIndex: 'lesCredit',
            text: 'DERS KREDİSİ'
        },
        {
            xtype: 'gridcolumn',
            reference: 'lesTeacher',
            itemId: 'lesTeacher',
            width: 600,
            dataIndex: 'lesTeacher',
            text: 'OKUTMAN'
        }
    ]
}]

网格代码

anamika@Alex:/home/alex$ cd
anamika@Alex:~$ ssh-keygen -t rsa -P --
Generating public/private rsa key pair.
Enter file in which to save the key (/home/anamika/.ssh/id_rsa): 
Created directory '/home/anamika/.ssh'.
Saving key "/home/anamika/.ssh/id_rsa" failed: passphrase is too short(minimum five characters)
anamika@Alex:~$ exit
alex@Alex:~$ 

2 个答案:

答案 0 :(得分:2)

如果您已在本地加载所有数据,则可以根据条件对商店进行过滤。

  

filterBy(fn,[scope])
  按功能过滤。将为此商店中的每个记录调用指定的函数。如果函数返回true,则包含Record,否则将其过滤掉。   过滤存储时,访问存储数据的大多数方法仅在过滤记录集中起作用。值得注意的例外是getById。

store.filterBy(function() 
{
if (refs.txtClass.value === refs.lesClass.value){
        return true;
    }
    else {
        return false;
    }
},this);

您还可以在商店中使用过滤器配置。

 filters: [
    function(item) {
        //condition here
    }
]

答案 1 :(得分:1)

You can also loadData method of store to load some part of data in store :
    var arr = [],
    store = yourgrid.getStore();
    store.each(function(rec) {
    if (// condition to create the part of data want to be loaded)){
        arr.push(rec);
    }
    store.loadData(arr);     

您还可以使用切片方法在范围的基础上存储一些数据    store.loadData(oldstoreRecords.slice(开始,结束);