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

RadGrid updated column value not appearing in Client side

3 Answers 107 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Neetu
Top achievements
Rank 1
Neetu asked on 03 Jan 2013, 03:40 PM
Happy New Year

I have a RadGrid and RadTreeview controls on a web form. Treeview displays list of documents which user can drop on RadGrid rows. I change the text of one of columns in grid from "Drop Here" to document dropped from the treeview using server side code. 

I would like to place a validation using client side to stop user dropping another document on the same row. To achieve this I was checking for text "Drop Here" in the column where document was dropped and allow if the text is "Drop Here". I always get the text "Drop Here" although the text has been updated.

My ASPX and code behind are as below

Many thanks
GridDataItem dataItem = RadGrid1.MasterTableView.Items[RowNumber.Value];
 
foreach (RadTreeNode node in e.DraggedNodes)
{
    //AddRowToGrid(dt, node);
    dataItem["DocAssigned"].Text = node.Text;
}

<telerik:RadDockZone runat="server" ID="RadDockZone1" Orientation="Vertical" Height="300px" Width="875px" BorderStyle="None">
    <telerik:RadDock runat="server" ID="RadDock1" Title="Vehicle Schedule" Height="300px" Width="875px">
        <ContentTemplate>
            <telerik:RadGrid runat="server" ID="RadGrid1" Width="840px" Visible="true" AutoGenerateColumns="False" OnRowDrop="RadGrid1_RowDrop">
                <MasterTableView Width="100%" DataKeyNames="CompletionDate,DocAssigned"  ClientDataKeyNames="CompletionDate,DocAssigned">
                    <Columns>
                        <telerik:GridBoundColumn
                            UniqueName="CompletionDate" SortExpression="CompletionDate" DataField="CompletionDate"
                            HeaderStyle-Width="85" HeaderText="Completed" DataFormatString="{0:dd/MM/yyyy}">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn
                            UniqueName="DateDue" SortExpression="DateDue" DataField="DateDue"
                            HeaderStyle-Width="85" HeaderText="Due" DataFormatString="{0:dd/MM/yyyy}">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn
                            UniqueName="AgCompanyName" SortExpression="AgCompanyName" DataField="AgCompanyName"
                            HeaderStyle-Width="250" HeaderText="Agent">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn
                            UniqueName="DocName" SortExpression="DocName" DataField="DocName"
                            HeaderStyle-Width="150" HeaderText="Document">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn
                            UniqueName="LinkedTo" SortExpression="LinkedTo" DataField="LinkedTo"
                            HeaderStyle-Width="80" HeaderText="Linked To">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn HeaderStyle-Width="80" HeaderText="Doc Assigned" UniqueName="DocAssigned" SortExpression="DocAssigned" DataField="DocAssigned" >
                        </telerik:GridBoundColumn>
                    </Columns>
                    <NoRecordsTemplate>
                        <div style="height: 30px; cursor: pointer;">
                            No outstanding documents for this vehicle
                        </div>
                    </NoRecordsTemplate>
                </MasterTableView>
                <ClientSettings AllowRowsDragDrop="true">
                    <ClientEvents OnRowMouseOver="RowMouseOver" OnRowDragStarted="OnRowDragStarted" />
                    <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" />
                </ClientSettings>
            </telerik:RadGrid>
        </ContentTemplate>
    </telerik:RadDock>
</telerik:RadDockZone>
<telerik:RadDockZone runat="server" ID="unprocessedDocumentsRadDockZone" Orientation="Vertical" Height="460px" Width="875px" BorderStyle="None">
    <telerik:RadDock runat="server" ID="unprocessedDocumentsRadDock" Title="Unprocessed Documents" Height="460px" Width="875px">
        <ContentTemplate>
            <table>
                <tr>
                    <td valign="top">
                        <telerik:RadTreeView ID="RadTreeView1" runat="server" AllowNodeEditing="false"  Height="400px" Width="200px" Style="border: 1px solid #CBE7F5;"
                                             EnableDragAndDrop="true"  OnClientNodeClicked="onNodeClicked"
                                             OnNodeDrop="RadTreeView1_HandleDrop"
                                             OnClientNodeDropping="onNodeDropping" OnClientNodeDragging="onTreeViewDragging"
                                             OnNodeExpand="RadTreeView1_NodeExpand">
                        </telerik:RadTreeView>
                     
                    </td>
                    <td valign="top">
                        <pdfviewer:ShowPdf ID="ShowPdf1" runat="server" BorderStyle="None" BorderWidth="0px" Height="400px" Width="680px" />
                     
                    </td>
                </tr>
            </table>
        </ContentTemplate>
    </telerik:RadDock>
</telerik:RadDockZone>

3 Answers, 1 is accepted

Sort by
0
Neetu
Top achievements
Rank 1
answered on 03 Jan 2013, 09:13 PM
Update: I have modified the Javascript code as below and have a workaround. However I am don't know how to get modified value at the server side.

selectedItem._element.cells[5].innerHTML => Returns modified value in the Javascript function
selectedItem.getDataKeyValue("DocAssigned") => Returns original value

0
Accepted
Shinu
Top achievements
Rank 2
answered on 04 Jan 2013, 07:44 AM
Hi,

I suppose you want to access the new values in UpdateCommand. Here is the sample code.
C#:
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e)
    {
        GridEditableItem editItem = e.Item as GridEditableItem;
        Hashtable newValues = new Hashtable();
        e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editItem);
        string id = newValues["Uniquename"].ToString();
    }

Thanks,
Shinu.
0
Neetu
Top achievements
Rank 1
answered on 08 Jan 2013, 02:12 PM
Thanks Shinu.

It works a treat.
Tags
Grid
Asked by
Neetu
Top achievements
Rank 1
Answers by
Neetu
Top achievements
Rank 1
Shinu
Top achievements
Rank 2
Share this question
or