This is a migrated thread and some comments may be shown as answers.

Get incerted row cell on client side

3 Answers 108 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Yurii
Top achievements
Rank 1
Yurii asked on 27 Jul 2011, 09:10 PM
This is how I get cell value from edited row on client side (function attached onBlur):

function estCost(sender, args) {
                var grid = $find('<%= rg_OpenWIP.ClientID %>');
                var idx = grid._editIndexes[0];
                var masterTable = grid.get_masterTableView();
                var items = masterTable.get_dataItems();
                var estCost = parseFloat(items[idx]._element.cells[5].getElementsByTagName('input')[1].value);
                                      ...
}

Now I need same for inserted row while editing. How?

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 28 Jul 2011, 05:36 AM
Hello Yurii,

You can get the inserted cell value by attaching the client event OnCommand and check for the CommandName. Here is the sample code that I tried which worked as expected.

aspx:
<ClientSettings>
  <ClientEvents  OnCommand="OnCommand" />
</ClientSettings>

Javascript:
<script type="text/javascript"
function OnCommand(sender,args)
 {
    if (args.get_commandName() == "PerformInsert")
    {
   alert($telerik.$(".rgEditRow", sender.get_masterTableView().get_element())[0].getElementsByTagName("input")[0].value); //when EditMode="InPlace"
    }
}
</script>

Thanks,
Princy.
0
Yurii
Top achievements
Rank 1
answered on 28 Jul 2011, 02:22 PM
Thank you, but that is not what I'm looking for. I have to get cell value at the time when edited field get out of focus (I'm doing some math there).
<telerik:GridTemplateColumn  UniqueName="CURR_CONTRACT" HeaderText="Final Contract">
    <ItemTemplate>
        ...    
</ItemTemplate>
    <EditItemTemplate>
        <telerik:RadNumericTextBox ID="currCont" runat="server" Text = '<%# Bind("CURR_CONTRACT") %>'>
            <NumberFormat DecimalDigits="0" />
            <ClientEvents OnBlur="currCont" />
        </telerik:RadNumericTextBox>
    </EditItemTemplate>
    <InsertItemTemplate>
        <telerik:RadNumericTextBox ID="currCont" runat="server" Text = '<%# Bind("CURR_CONTRACT") %>'>
            <NumberFormat DecimalDigits="0" />
            <ClientEvents OnBlur="currCont" />
        </telerik:RadNumericTextBox>
    </InsertItemTemplate>
</telerik:GridTemplateColumn>

Question is how to get cell value onBlur event in InsertItemTemplate. I tried your code in onBlur:
function currCont(sender, args) {
    var grid = $find('<%= rg_OpenWIP.ClientID %>');
    var temp = $telerik.$(".rgEditRow", grid.get_masterTableView().get_element())
};
It gives me error saying object does not support this property or method...
0
Yurii
Top achievements
Rank 1
answered on 28 Jul 2011, 06:54 PM
Never mind I found way around:

function currCont(sender, args) {
var currCont;
var grid = $find('<%= rg_OpenWIP.ClientID %>');
var idx = grid._editIndexes[0];
if (idx == null) { //insert row always first
    currCont = $telerik.findElement(grid.get_masterTableView().get_element(), 'currCont');
}
else {
    var items = grid.get_masterTableView().get_dataItems();
    currCont = $telerik.findElement(items[idx]._element, 'currCont');
}
var currContValue = parseFloat(currCont.value);
...
}
Tags
Grid
Asked by
Yurii
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Yurii
Top achievements
Rank 1
Share this question
or