【问题标题】:dojo datagrid and itemfilereadstoredojo datagrid 和 itemfilereadstore
【发布时间】:2010-05-18 04:49:14
【问题描述】:

如何更新 dojox.Grid 以显示最新数据?

最初我创建了空商店, 然后我改变了数据以包含一些东西, 使用新数据创建新数据存储 然后将网格数据存储设置为新存储。

在大多数示例中,人们在初始化商店时使用 url 而不是数据。

那么如何更新网格以显示最新的商店?

 // Use empty grid,
var emptyData = { identifier: "UID_T", label: "UID_T", items: [] };
var lgaNameSelectionStore = new dojo.data.ItemFileReadStore({data: emptyData}); 

var lgaNameGridLayout = [
        {name : "<span title='Agency'>Agency</span>", field : "AGENCY", width : "7em"},
        {name : "<span title='Project Description'>Project Description</span>", field : "ProjectDes", width : "20em"},
        {name : "<span title='Description'>Description</span>", field : "CTPPD_DESC", width : "12em", },

    ];

var lgaNameContainer = new dijit.layout.BorderContainer({       
            style: "width: 100%; height: 100%",
            gutters: false,
            design: "headline"
    },"lgawinuid");

lgaNameGrid = new dojox.grid.DataGrid({
        store: lgaNameSelectionStore,
        region: "center",
        structure: lgaNameGridLayout,
        selectionMode: "none",
        noDataMessage: "No results found."
    });

lgaNameContainer.addChild(lgaNameGrid);
lgaNameContainer.startup();


//data is changed, so need to update the grid   
var data3 = { identifier: "UID_T", label: "UID_T", items: [{"UID_T" : "I333","AGENCY" : "RTA","CTPPD_DESC" : "M5","ProjectDes" : "Filtration","location" : ""}]};

lgaNameSelectionStore = new dojo.data.ItemFileReadStore({data: data3});
lgaNameGrid.setStore(lgaNameSelectionStore);

【问题讨论】:

  • 当您使用新数据存储调用 setStore 时,应该更新网格。我认为你的代码是正确的。你的代码有什么问题?网格没有更新?
  • 是的,网格没有更新。

标签: javascript dojo


【解决方案1】:

问题出在这里:

lgaNameSelectionStore = new dojo.data.ItemFileReadStore({data: data3});

您不能向 ItemFileReadStore 添加新数据(仅用于读取), 你必须使用 ItemFileWriteStore

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2010-12-11
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多