当前位置: 首页 > 面试题库 >

Dojo网格嵌套json

乐正心水
2023-03-14
问题内容

我想要一个连接到服务器URL的dojo网格,该URL输出以下json:{identifier:“ id” items:[{id:“ 1”,name:“
John”,大学:{name:“ XXX “,地址:” YYY“}}]。

基本上我有一个嵌套的json。我想将大学名称和大学地址表示为网格中的单独列。

我尝试使用dojox.grid.DataGrid对象并创建网格布局,但不知道如何引用嵌套的要素,而university.name和university.address似乎不起作用。我正在使用dojo
1.6.1。

有人有指针吗?

这是我使用的js代码:

    dojo.require("dojox.grid.DataGrid");
    dojo.require("dojo.data.ItemFileReadStore");

    dojo.addOnLoad(function(){
    // our test data store for this example:
    var jsonStore = new dojo.data.ItemFileReadStore({
        url: '/MainDeployer/ajax/users/get.json'
    });

    var layoutUsers = [
       [{
               field: "name",
               name: "Name",
               width: 10
           },
           {
               field: "university.name",
               name: "University Name",
               width: 10
           },
           {
               field: "university.address",
               name: "University Address",
               width: 'auto'
           }]];

    // create a new grid:
    var grid = new dojox.grid.DataGrid({
        query: {},
        store: jsonStore,
        clientSort: true,
        rowSelector: '20px',
        structure: layoutUsers
    },
    document.createElement('div'));

    dojo.byId("usersTable").appendChild(grid.domNode);

    grid.startup();
});

谢谢,克里斯蒂安


问题答案:

您正在使用哪种商店?看一下dojo.data.ItemFileReadStore文档,这里有一个类似您的情况的示例:http :
//dojotoolkit.org/reference-guide/dojo/data/ItemFileReadStore.html#item-
structure

这将帮助您通过一次调用方法“
fetch”来获取所有项目。如果由于某些原因由于不同的json结构而无法使用,则可以继续使用ItemFileReadStore,并创建一个循环遍历json中所有对象函数,并使用loadItem方法以此方式逐项添加项目(它不漂亮,但是可以正常工作):

var myData = {"items" : []};
var myStore = new dojo.data.ItemFileWriteStore({data: myData});
var myLayout = [{
    field: 'name',
    name: 'Name',
    width: '200px'
},
{
field: 'universityName',
name: 'University Name',
width: '100px'
},
{
field: 'universityAddress',
name: 'University Address',
width: '60px'
}];
var myGrid;

dojo.addOnLoad(function(){
    myGrid = new dojox.grid.DataGrid({
        store: myStore,
        structure: myLayout
    }, document.createElement('div'));
    dojo.byId("myGridContainer").appendChild(myGrid.domNode); 
    myGrid.startup();

    dojo.xhrGet({
        url: myURL,
        handleAs: "json",
        headers: {
            "Content-Type": "application/json; charset=uft-8", 
            "Accept" : "application/json"
        },
        load: function(responseObject, ioArgs) {
            myList = responseObject;
            dojo.forEach(myList.items, function(element) {     
                myStore.newItem({"name": element.name, 
                    "universityName": element.university.name,
                    "universityAddress": element.university.address});
            });
        })
    });
}


 类似资料:
  • 我目前有一个GridPane作为布局的根,我有另一个GridPane里面包含2个标签。我试图让这些标签中的一个左对齐,另一个右对齐。 我尝试使用GridPane.halignment="右",但这对标签没有影响。 我的布局代码如下: 如何按照我想要的方式对齐这些标签?GridPane对我想做的事情来说是理想的吗?我对JavaFX相当缺乏经验,但对Android的布局管理器很熟悉。

  • 问题内容: 我想将jqgrid与嵌套子网格一起使用。但是,我发现的唯一示例是使用一个url负载数据调用和单独的调用来填充主网格,以填充子网格。 我的子网格数据以嵌套文档的形式存在于一个JSON结构中,如下面的代码片段所示(我希望各章显示为本书的子网格,而文件则应作为各章中的子网格)。 我可以使用jqgrid从嵌套的JSON文档创建子网格吗? 问题答案: 我进行了演示,演示了如何执行此操作: 该演示

  • 我使用带有嵌套属性的Vaadin网格,例如。我想用对这些列进行排序,因为是一个LocalDateTime,它总是。但这行不通。我需要为每个这样的列定义一个,我已经使用了很多:-) 这是一个bug还是故意的? 亲切地问候 张秀坤

  • 问题内容: 因此,可以说JSON响应为: 当您必须首先访问数据时,如何获得值“ value1”和“ value2”? 如果字段位于根目录,那么我可以让该方法返回带有这些字段名称的POJO。 我基本上希望下面的工作。 问题答案: 您可以尝试以下代码,使用Gson库将json字符串转换为具有必填字段的Pojo对象。 或者,您可以定义嵌套的Pojo类来解析它。 编辑:尝试下面的代码以使用Retrofit

  • 问题内容: 如何使用嵌套JSON填充Kendo UI网格。 我的意思是我的JSON就像 我想要Kendo UI Grid,其列为Id,Name,OtherType和OtherStuff。 提前致谢。! 问题答案: 对于复杂的JSON结构,您可以使用 如果您将JSON稍微更改为: 那么您可以使用:

  • 我是Java的新手,我想使用循环来产生阶梯效果,但在每一行中添加越来越多的空格。这是我的密码- 最终的目标是让它打印以下内容: 但我的照片是这样的: 对不起,我知道这是初学者的东西,但我不知道还能去哪里。感谢任何帮助。多谢了。