Dojo datagrid - 检索每列字段的值。

发布于 2024-11-28 00:54:38 字数 336 浏览 0 评论 0原文

我目前正在使用 dojo 数据网格,并且希望能够循环遍历包含网格每个字段的所有值的列表。例如,假设我的网格有这些列:

      <th field="name" width="200px">Name</th>
      <th field="description" width="200px">Description</th>
          <th field="type" width="200px">Type</th>

如何获取所有字段值的列表?在此示例中,列表应为[名称、描述、类型]。感谢您的帮助!

I'm currently using a dojo datagrid and I want to be able to loop through a list containing all the value for each field of the grid. For example say my grid has these columns:

      <th field="name" width="200px">Name</th>
      <th field="description" width="200px">Description</th>
          <th field="type" width="200px">Type</th>

How do I get a list of all the field values? With this example, the list should be [name, description, type]. Thanks for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栀梦 2024-12-05 00:54:38

让我们试试这个。

首先,您需要知道 dijit 的 ID。如果它是自动生成的(因为您在 HTML 中声明 DataGrid),您可能需要使用 dojo.query 来查找 DOM 节点,并使用 dijit.byNode(node)找到 dijit。下面的示例假设您知道 ID。

var fields = [];
var getFields = function(object) {
    // recurse to handle stacked rows
    if(dojo.isArray(object)) {
        dojo.forEach(object, function(o) {
            getFields(o);
        });
    } else if(object.field) {
        fields.push(object.field);
    } else if(object.cells) {
        getFields(object.cells);
    }
};
var structure = dijit.byId("dojox_grid_DataGrid_0").structure;
getFields(structure);
console.log(fields);

这将递归地处理网格的结构,查找具有 field 属性的任何对象。

更新 我必须为声明性网格添加对 object.cells 的检查。

Let's try this.

First, you need to know the ID of the dijit. If it's autogenerated (because you are declaring your DataGrid in HTML), you may need to use dojo.query to find the DOM node, and use dijit.byNode(node) to locate the dijit. The example below assumes you know the ID.

var fields = [];
var getFields = function(object) {
    // recurse to handle stacked rows
    if(dojo.isArray(object)) {
        dojo.forEach(object, function(o) {
            getFields(o);
        });
    } else if(object.field) {
        fields.push(object.field);
    } else if(object.cells) {
        getFields(object.cells);
    }
};
var structure = dijit.byId("dojox_grid_DataGrid_0").structure;
getFields(structure);
console.log(fields);

This will recursively process the structure of the Grid, looking for any object with a field property.

Update I had to add in a check for object.cells for declarative grids.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文