Умное повторное связывание источника данных клиента

Я создал источник данных 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
});

person javapenguin    schedule 20.02.2015    source источник


Ответы (1)


Попробуйте вызвать это после изменения DataSource.dataURL

ListGrid.invalidateCache();

и вам не нужно снова звонить ListGrid.fetchData()

Ссылка: http://www.smartclient.com/docs/release/a/b/c/go.html#method..ListGrid.invalidateCache

person wdetac    schedule 25.02.2015
comment
Это должно работать; но если нет, то могут мешать другие настройки. Некоторые сетки не будут обновляться таким образом. В некоторых случаях мне приходилось переходить на ручную вставку. Используйте запрос JSON для получения данных, затем setDate({}). - person Insinbad; 25.02.2015
comment
Вызов ListGrid.invalidateCache(), а затем ListGrid.fetchData() сработал, спасибо - person javapenguin; 26.02.2015