I have a grid which uses a combo box as an editor for a few columns. Currently there are about 1350 items.
The performance of the drop down is fine if you just start typing. But if you decide to simploy click the down arrow, there is about a 1 second delay which is definitely enough that users have complained about it.
I have tried using autoBind: true, but there are two issues with that. 1. that any subsequent time the dropdown is shown, it just shows [Object object] instead of teh ExtendedItemName which it does correctly the first time, and all the time when autoBind is false. 2. Is that autoBind doesn't seem to speed anything up.
Because autoBind doesn't speed anything up, I don't think this is a network issue. Also the fact that even with autoBind off, the data is only read from the server the first time you drop it down. But there is a delay every time you drop the combo down.
Any ideas?
~Shea M
The performance of the drop down is fine if you just start typing. But if you decide to simploy click the down arrow, there is about a 1 second delay which is definitely enough that users have complained about it.
I have tried using autoBind: true, but there are two issues with that. 1. that any subsequent time the dropdown is shown, it just shows [Object object] instead of teh ExtendedItemName which it does correctly the first time, and all the time when autoBind is false. 2. Is that autoBind doesn't seem to speed anything up.
Because autoBind doesn't speed anything up, I don't think this is a network issue. Also the fact that even with autoBind off, the data is only read from the server the first time you drop it down. But there is a delay every time you drop the combo down.
Any ideas?
self.purchase_items_src =
new
kendo.data.DataSource({
transport: {
read: {
url: GridCommon.ITEMS_HANDLER_URL +
"/GetPurchaseItems"
,
dataType:
"json"
,
type:
"GET"
}
},
error: GridCommon.showCallBackError
});
//.....
self.itemDropDownEditor =
function
(container, options) {
$(
'<input required data-text-field="ExtendedItemName" data-value-field="ItemName" data-bind="value:'
+ options.field +
'"/>'
)
.appendTo(container)
.kendoComboBox({
serverFiltering:
false
,
placeholder: GridCommon.emptyText,
dataSource: self.purchase_items_src,
filter:
"contains"
,
change:
function
(e) {
options.model.set(
'ItemID'
, e.sender.dataItem().ItemID);
options.model.set(
'ItemName'
, e.sender.dataItem().ItemName);
}
});
};
~Shea M