【问题标题】:Smart client data source rebind智能客户端数据源重新绑定
【发布时间】:2015-02-20 08:48:29
【问题描述】:

我创建了一个 smartclient 数据源和列表网格。 autoFetchData 设置为 false,列表网格 dataSource 设置为我的数据源。

当我进行搜索时,我将数据源 dataURL 设置为我的 url 并调用列表网格 fetchData 方法。

var url = "myurl?value=123";
deploymentDataSource.dataURL = url;
deploymentList.fetchData();

这工作正常,列表网格正确显示值。

问题是当我尝试使用新参数再次搜索时,它不会使用新值更新我的列表网格。

var url = "myurl?value=456";
deploymentDataSource.dataURL = url;
deploymentList.fetchData();

这是我的数据源和列表网格:

isc.DataSource.create({
    ID: "deploymentDataSource",
    dataFormat: "json",
    fields: [
        {name: "id", title: "id"},
        {name: "date", title: "date"},
        {name: "buildNumber", title: "buildNumber"},
        {name: "projectKey", title: "projectKey"},
        {name: "planKey", title: "planKey"},
        {name: "buildEnvironment", title: "buildEnvironment"}
    ]
});


isc.ListGrid.create({
    ID: "deploymentList",
    width: 600, height: 300, alternateRecordStyles: true,
    dataSource: "deploymentDataSource",
    selectionType: "simple",
    autoFetchData: false
});

【问题讨论】:

    标签: datasource smartclient listgrid


    【解决方案1】:

    更改DataSource.dataURL后尝试调用它

    ListGrid.invalidateCache();
    

    您无需再次致电ListGrid.fetchData()

    参考: http://www.smartclient.com/docs/release/a/b/c/go.html#method..ListGrid.invalidateCache

    【讨论】:

    • 这应该可以;但如果没有,可能会有其他设置妨碍。有些网格不会像这样刷新。在某些情况下,我不得不转向手动插入。我们使用 JSON 请求检索数据,然后 setDate({})。
    • 调用 ListGrid.invalidateCache() 然后 ListGrid.fetchData() 工作,谢谢
    猜你喜欢
    • 2014-09-02
    • 1970-01-01
    • 2011-10-27
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多