【发布时间】:2015-02-05 18:27:07
【问题描述】:
我有一个带有以下声明的 Dojo 扩展 dgrid:
var myGridTemplate = declare([ OnDemandGrid,ColumnReorder,Keyboard,Selection,selector,Pagination,ColumnResiser]);
var myGrid = new myGridTemplate(
{
deselectOnRefresh : true,
cellNavigation : true,
loadingMessage : "Loading data...",
noDataMessage : "No data found.",
columns : {
xyz : {
label : Mylabel,
width : 50,
renderHeaderCell: function(col_node) {
col_field = "xyz";
this_filter_col = this;
domConstruct.create("div", {
innerHTML: this_filter_col.label,
intermediateChanges: true
}, col_node);
.
var form = new Form({style: "font-size: 11px"});
.
var tc = new TabContainer({
style: "height: 220px; width: 300px;",
useMenu : false,
useSlider : false,
tabStrip : false,
tabPosition: "top",
doLayout : true
});
tc.placeAt(form.domNode);
var cp = new ContentPane({
region: "top",
style: "padding: 5px; border-bottom: none;" });
.
.
}
.
.
});
在上面的代码中,Renderheadcell() 方法为每个标题添加了一个过滤表单(上面的示例“xyz”),当我单击标题中存在的按钮时会弹出一个过滤表单。
一切正常,但是当我对列重新排序时,renderHeaderCell() 块中存在的表单(具有文本框、单选按钮等小部件)会自动重置并再次绘制。
因此,我无法在表单中保留显示我在特定列上应用了哪些过滤器所需的值。
当用户完成列重新排序时,如何防止renderHeaderCell() 调用?
任何解决方案/指针都会有很大帮助。
谢谢,
【问题讨论】:
标签: javascript dojo dgrid