Client side radgrid updateItem() works absolutely inconsistently. It fires always server update only if I put debugger inside javascript otherwise it may or may not update record. Is that a bug in radgrid?
I have grid with last column template. Idea was to have an Excel like grid - on tab out from last column udate current record and edit next one.
here is javascript:
I have grid with last column template. Idea was to have an Excel like grid - on tab out from last column udate current record and edit next one.
<
telerik:GridTemplateColumn
UniqueName
=
"COSTTOCOMPLETE"
HeaderText
=
"Cost to Complete"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"costToComp"
runat
=
"server"
Text = '<%# Eval("COSTTOCOMPLETE") %>' ReadOnly="true">
<
NumberFormat
DecimalDigits
=
"0"
/>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"costToComp"
runat
=
"server"
Text = '<%# Bind("COSTTOCOMPLETE") %>'>
<
NumberFormat
DecimalDigits
=
"0"
/>
<
ClientEvents
OnBlur
=
"costToComp"
/>
</
telerik:RadNumericTextBox
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"costToComp"
runat
=
"server"
Text = '<%# Bind("COSTTOCOMPLETE") %>'>
<
NumberFormat
DecimalDigits
=
"0"
/>
<
ClientEvents
OnBlur
=
"costToComp"
/>
</
telerik:RadNumericTextBox
>
</
InsertItemTemplate
>
</
telerik:GridTemplateColumn
>
here is javascript:
function
costToComp(sender, args) {
var
grid = $find(
'<%= rg_OpenWIP.ClientID %>'
);
var
idx = grid._editIndexes[0];
if
(idx !=
null
) {
$find(grid.MasterTableView.get_id()).updateItem(parseInt(idx));
var
items = grid.get_masterTableView().get_dataItems();
if
((items.length - 1) != idx) {
$find(grid.get_masterTableView().get_id()).editItem(parseInt(idx) + 1);//works always
}
}
else
{
$find(grid.MasterTableView.get_id()).insertItem();
}
};