Extjs- Grid列标题为每次搜索刷新

时间:2014-09-23 20:35:32

标签: sorting extjs default datagridcolumnheader

每次显示结果时,我都会尝试根据默认列标题对结果网格进行排序。我尝试给商店一个分拣机,当页面第一次加载时它工作正常。它按我希望的那样工作。但只有当我尝试单击网格中的不同列标题时才会出现问题。当我点击不同的标题时,它会根据特定的列值进行排序。如果我在此时单击搜索按钮而不重新加载页面,则会显示搜索结果并根据我之前选择的列进行排序。我希望根据默认列对其进行排序。问题是,每次单击搜索或重置按钮时,网格都会使用搜索结果刷新,但列标题不会刷新。因此,结果将根据我之前的选择进行排序。要解决此问题,我每次单击搜索或重置时都会尝试重新加载整个页面。有没有一种方法可以在每次单击搜索时刷新列标题以及搜索结果,以便根据默认列标题对结果进行排序。我能够为每个搜索刷新搜索结果和分页部分,但不能刷新列标题。任何解决方案......

...谢谢

2 个答案:

答案 0 :(得分:2)

你没有提到的一件事是你是否真的想让用户按不同的列排序。

您可以使用sortable: false在列定义中关闭此行为 http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.column.Column-cfg-sortable

如果您想保持这种行为,您可以在每次加载时再次使用默认排序器替换排序器:

var myDefaultSorter=Ext.create('Ext.util.Sorter',{
    property:"MyProperty",
    direction:"ASC"
});

store.on('beforeload',function(store) {
    store.sorters.clear();
    store.sorters.add(myDefaultSorter);
}

答案 1 :(得分:0)

您是否尝试过store.sorters.clear()?