1

我有一个从 XML 数据存储加载的 DataGrid,所有这些都是以声明方式创建的。我想在加载数据时设置排序。我发现的所有示例都涉及以编程方式执行此操作,并暗示它应该以声明方式可行。

这是创建数据源的代码。

<head>
    <title>Untitled Page</title>
    <style type="text/css">
        @import "StyleSheet.css";
        @import "js/dojotoolkit/dijit/themes/pfga/pfga.css";
        @import "js/dojotoolkit/dojo/resources/dojo.css";
        @import "js/dojotoolkit/dojox/grid/resources/Grid.css";
        @import "js/dojotoolkit/dojox/grid/resources/pfgaGrid.css";
    </style>

    <script src="js/dojotoolkit/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad: true"></script>

    <script type="text/javascript">
        dojo.require("dojo.parser");
        dojo.require("dojox.grid.DataGrid");
        dojo.require("dojox.data.XmlStore");
        dojo.require("dijit.layout.ContentPane");
    </script>
</head>

<body class="pfga">

<div dojotype="dojox.data.XmlStore" url="events.xml" jsID="eventStore"></div>

<table dojoType="dojox.grid.DataGrid" store="eventStore" class="pfga" style="height:500px" clientSort="true" jsID="eventGrid">
  <thead>
    <tr>
      <th field="date" width="80px">Date</th>
      <th field="description" width="600">Description</th>
      <th field="DateID" sortDesc="true" hidden="false">DateSort</th>
    </tr>
    <tr>
        <th field="time" colspan="3">Details</th>
    </tr>
  </thead>
</table>

</body>
4

2 回答 2

3

作为记录,在 dojo 1.5 中,它是传递给数据网格的“sortInfo”参数。它使用与'canSort' 函数相同的约定,即表示列的数字(从1 开始)和表示排序方向的符号。

为此,我向http://docs.dojocampus.org/dojox/grid/DataGrid添加了评论。

例如,此网格按“最近的第一”顺序按“已创建”列排序:

<table dojoType="dojox.grid.DataGrid" clientSort="true" selectionMode="single"
   formatterScope="formatterScope" dojoAttachPoint="logGrid" sortInfo="-2">
   <thead><tr>
    <th field="clientId" width="10%">Client ID</th>
    <th field="created" width="20%" formatter="datefmt">Created</th>
    <th field="message" width="30%" formatter="messagebodyfmt">Message</th>
    <th field="token" width="10%">Token</th>
    <th field="type" width="20%">Type</th>
    <th field="username" width="10%">Username</th>
   </tr>
</table>

当然,您对商店的选择及其理解排序指令的方式会产生进一步的影响,例如我使用 JsonQueryRestStore 和 sortInfo 参数导致商店查询包括基于 dojox.data.JsonQuery 的排序语法和后端处理查询必须了解如何在返回数据之前对数据进行排序。

于 2010-09-28T09:07:23.420 回答
0

一旦我添加了 JSID 来解决我的过滤问题,看起来排序就开始工作了

于 2009-11-23T16:57:05.127 回答