/ / global.Exp.Data.getLocalDataSet () порожнє при оновленні - jquery, asp.net, html5, azure

global.Exp.Data.getLocalDataSet () порожній при оновленні - jquery, asp.net, html5, лазур

Перший метод використовується для отримання записубазу даних та заповніть дані до сітки. Другий метод використовується для перегляду даних користувача. Коли користувач натискає другий спосіб, він повертає значення і показує користувачеві деталі. Але оновлення сторінки в деталях користувача того часу

 var local = global.Exp.Data.getLocalDataSet("UserInfoTenant/ListUsers")

не має значення.

Повідомлення про помилку: Error: Unable to get property "FirstName" of undefined or null reference.


function loadUserInfo(extension, renderArea)
{
global.UserInfoTenantExtension.isUserInfoTabNavigating = null;
global.UserInfoTenantExtension.UserInfotabRenderArea = renderArea;
global.Shell.UI.Spinner.show();
**global.Exp.Data.getData**({
url: ListUsers, //controller "ActionName" name
dataSetName: ListUsers,
forceCacheRefresh: true
}).done(function (url, dataSet) {
var grid,
columns = [
{
name: "Id", field: "Id", filterable: true, sortable: true, type: "navigation", navigationField: "Id"
},
{ name: "First Name", field: "FirstName" },
{ name: "Title", field: "Title" },
{ name: "Comment", field: "Comment" },
{ name: "Is Active", field: "IsDeleted" },
];
grid = renderArea.find(".userInfoContainer") //template html class name
.wazObservableGrid("destroy")
.wazObservableGrid({
lastSelectedRow: null,
data: dataSet.data,
keyField: "Id",
columns: columns,
gridOptions: {
rowSelect: onRowSelected,
pagerOptions: {
pageSize: 10
},
}
});
global.Shell.UI.Spinner.hide();
});
showCommands();}

function loadtab(renderArea, renderData) {
if (global.UserInfoTenantExtension.UserInfoTab.currentContext) {
**var local = global.Exp.Data.getLocalDataSet("UserInfoTenant/ListUsers")**
var filtered = $(local.data).filter(function () {
return this.FirstName.replace(" ", "_") == global.UserInfoTenantExtension.UserInfoTab.currentContext.current.itemName.replace(" ", "_");
});
if (filtered.length > 0)
global.UserInfoTenantExtension.selectedDoctor = viewModel.selectedUser = filtered[0];
}
viewModel.selectedUser = global.UserInfoTenantExtension.selectedDoctor;
global.UserInfoTenantExtension.templates.DoctorDetails.link($(renderArea), viewModel, null);
}

Відповіді:

0 для відповіді № 1

У функції loadUserInfo надайте ідентифікатор передплати ресурсу наступним чином:

global.Exp.Data.getData({
url: ListUsers, //controller "ActionName" name
dataSetName: ListUsers,
ajaxData: {
subscriptionIds: subscriptionRegisteredToService
},
forceCacheRefresh: true
})

після того, як ви рендеріть дані на сторінці. наступний дзвінок global.Exp.Data.getLocalDataSet("UserInfoTenant/ListUsers") принесе дані.

якщо в першому дзвінку немає даних, спробуйте AjaxPost, щоб отримати дані.

Shell.Net.ajaxPost({
dataSetName: url,
url: url,
data: data
});