我将过滤插件添加到我的 Dojox 增强网格中。现在我想创建我自己的约束,在没有用户输入的情况下过滤网格。如果我使用过滤插件,正常的 grid.filter 将被停用。
dojox.grid.enhanced.plugins.filter.BooleanExpr 之类的子类是否提供了该功能?简单过滤器的语法(例如通过 ID)是什么样的?
我将过滤插件添加到我的 Dojox 增强网格中。现在我想创建我自己的约束,在没有用户输入的情况下过滤网格。如果我使用过滤插件,正常的 grid.filter 将被停用。
dojox.grid.enhanced.plugins.filter.BooleanExpr 之类的子类是否提供了该功能?简单过滤器的语法(例如通过 ID)是什么样的?
我有一个类似的问题,只能通过在一些 jQuery 的帮助下定期在后台运行网格过滤器来解决它。我相信同样的方法可能适用于您正在尝试做的事情。这是一些示例代码:
添加 jQuery:
<script src="http://code.jquery.com/jquery-latest.js"></script>
把它放在<head>
页面中:
<script type="text/javascript">
$(document).ready(function() {
function filterTheDataGrid() {
if (dijit.byId("grid") != undefined) {
dijit.byId("grid").filter({color: "Red"});
}
}
// Run filterTheDataGrid every 1000 milliseconds //
// Lower 1000 for faster refreshing, maybe to 500 milliseconds //
var refreshDataGrid = setInterval(function() { filterTheDataGrid(); }, 1000);
}
</script>
还有这个:
<script type="text/javascript">
// Setup the layout for the data //
var layoutItems = [[
{
field: "id",
name: "ID",
width: '5px',
hidden: true
},
{
field: "color",
name: "Color",
width: '80px'
}
]];
// Create an empty datastore //
var storeData = {
identifier: 'id',
label: 'id',
items: []
}
var store3 = new dojo.data.ItemFileWriteStore( {data : storeData} );
</script>
把它放在<html>
页面中:
<div id="grid" dojoType="dojox.grid.DataGrid" jsId="grid5" store="store3" structure="layoutItems" query="{ type: '*' }" clientSort="true" rowsPerPage="40"></div>
还有这个:
<script type="text/javascript">
function addItemToGrid(formdata) {
// This function is called by a dialog box and gets form data passed to it //
var jsonobj = eval("(" + dojo.toJson(formData, true) + ")");
var myNewItem = {
id: transactionItemID,
color: jsonobj.color
};
// Insert the new item into the store:
store3.newItem(myNewItem);
store3.save({onComplete: savecomplete, onError: saveerror});
}
</script>
希望这可以帮助。