我是道场的新手,..在这方面挣扎了很多,请帮忙.....
我正在道场的增强网格中使用过滤器插件....我在客户端做得很好,但来到服务器端我不知道如何调用 servlet 并将过滤后的行放入网格,请在此提供帮助......
我尝试过这样的事情....
grid = new EnhancedGrid({
id : 'grid',
store : yourStore,
structure : layout,
rowSelector : '20px',
plugins : {
search : true,
pagination : {
pageSizes : [ "50", "100"],
description : true,
sizeSwitch : true,
pageStepper : true,
gotoButton : true,
maxPageStep : 2,
position : "bottom"
},
filter : {
closeFilterbarButton : true,
ruleCount : 5,
ruleCountToConfirmClearFilter:2,
itemsName : "rows",
isServerSide:true,
isSateful:true,
url:"http:myaddress:8080/GridExample/Filter",
setupFilterQuery: setupFilter
}
}
});
var setupFilter = function(commands, request){
if(commands.filter && commands.enable){
// some filter is defined and valid. You can modify the request object here.
}else{
// no filter is valid.
}
};
grid.placeAt("myGrid");
grid.startup();
}
});
首先:你加载插件正确吗?
dojo.require("dojox.grid.enhanced.plugins.Filter");
也许这对您的问题有所帮助:
http://dojotoolkit.org/reference-guide/1.8/dojox/grid/EnhancedGrid/plugins/Filter.html#introduction-to-server-side-filtering
问候
更新 1
嘿,你好!我必须深入研究 Web 的宽度,但最近我想我找到了您如何定义过滤器问题的答案。
plugins: {
filter: {
isServerSide: true,
setupFilterQuery: function(commands, request){
if(commands.filter && commands.enable){
console.log(commands.filter);
request.query = {
"Name": "L*"
}
}
}
itemsName:'songs',
closeFilterbarButton: true,
ruleCount: 8
}
}
我从这里抓住这个:https://bitbucket.org/dojo/dojox/src/64328839903b/grid/tests/enhanced/test_enhanced_grid_filter.html
此示例定义一个筛选器,该筛选器在存储区中搜索以字母"L"开头的所有名称。使用其他受支持的运算符,您可以定义自己的筛选器。
http://dojotoolkit.org/reference-guide/1.9/dojox/grid/EnhancedGrid/plugins/Filter.html#supported-operators
希望对您有所帮助!
问候