Я использую Kendo UI ComboBox с внешним источником данных XML. Вот код источника данных:
try
{
var csDataSrc = new kendo.data.DataSource(
{
transport:
{
read: "Data/StateList.xml",
dataType: "xml",
create: { cache: true }
},
schema:
{
type: "xml",
data: "/States/State",
model:
{
fields:
{
id: "id/text()",
name: "name/text()"
}
}
}
});
csDataSrc.read();
}
catch (err)
{
log.error(err.message);
}
Это создает источник данных, вот код, который создает поле со списком кендо:
$("#stateList").kendoComboBox(
{
index: 0,
placeholder: "Begin typing Coverage State...",
dataTextField: "name",
dataValueField: "id",
filter: "contains",
dataSource: csDataSrc,
text: $("#hdnStateName").val(),
value: $("#hdnStateKey").val(),
change: function(e)
{
$("#hdnStateKey").val(this.value());
$("#hdnStateName").val(this.text());
}
});
Это работает очень хорошо, но данные для реального списка огромны, и я хотел бы сохранить их в локальном хранилище примерно так: localStorage.setItem("state_key", csDataSrc); Затем, когда страница загружается вместо того, чтобы постоянно строить и читать xml на стороне сервера, я бы хотел, чтобы это было примерно так:
var csDataSrc = localStorage.getItem("state_key");
if(csDataSrc === null)
{
// create the data source with the above code
// and store it in localStorage.
}
Тогда привяжите его здесь...
...kendoComboBox(
{
...,
.dataSource: csDataSrc,
...
});
Я создаю источник данных в порядке, кажется, что он правильно хранится в localStorage, но когда вы покидаете страницу и возвращаетесь, источник данных всегда равен нулю. Я вижу это, используя вкладку ресурсов инструментов разработчика Chrome, но она не будет правильно привязана к полю со списком. Любая помощь или если мне нужно что-то уточнить, чтобы сделать это более ясным, пожалуйста, дайте мне знать
Спасибо -с