How to copy data from parent level to child level (see in attached file). For example, If I need to edit price of all rooms on the 1st floor according to 1st floor price. Firstly, I need to change the price from 200 to 210 of 1st floor price. Then I do not need to edit row by row at child level. Does telerik provide a function to copy price from 1st floor price to all rooms price on the 1st floor? or I have to program with another technic?
4 Answers, 1 is accepted
0

Jayesh Goyani
Top achievements
Rank 2
answered on 04 Apr 2012, 12:09 PM
Hello Noraset,
you want this functionality on client side or server side ?
Thanks,
Jayesh Goyani
you want this functionality on client side or server side ?
Thanks,
Jayesh Goyani
0

Noraset
Top achievements
Rank 1
answered on 06 Apr 2012, 02:18 AM
Thanks Jayesh Goyani.
It seems you imply me that it can be done both ways, But, I prefer client side. If it can be done both, which one are harder?
It seems you imply me that it can be done both ways, But, I prefer client side. If it can be done both, which one are harder?
0

Jayesh Goyani
Top achievements
Rank 2
answered on 06 Apr 2012, 10:07 AM
Hello Noraset,
Client Side:
Thanks,
Jayesh Goyani
Client Side:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="forumpage.aspx.cs" Inherits="forumpage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
script
src
=
"Scripts/jquery-1.6.2.min.js"
type
=
"text/javascript"
></
script
>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function ValueChanged(obj, args) {
var txtparent = obj.get_id();
var newvalue = args.get_newValue();
var grid = $find("<%=RadGrid1.ClientID %>");
if (grid) {
var MasterTable = grid.get_masterTableView();
var Rows = MasterTable.get_dataItems();
for (var i = 0; i <
Rows.length
; i++) {
var
row
=
Rows
[i];
// if you get any error then check is row is expaned or not
// if (row._expanded)
if (row.findControl("txtparent").get_id() == obj.get_id()) {
for (var
j
=
0
; j < row.get_nestedViews()[0].get_dataItems().length; j++) {
var
childrow
= row.get_nestedViews()[0].get_dataItems()[j];
childrow.findControl("txtchild").set_value(newvalue);
// if you not the control by using findcontrol then used Jquery
}
}
}
}
}
</script>
</
telerik:RadCodeBlock
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
>
<
MasterTableView
DataKeyNames
=
"ID"
ClientDataKeyNames
=
"ID"
Name
=
"parent"
HierarchyLoadMode
=
"Client"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"NO"
UniqueName
=
"NO"
HeaderText
=
"NO"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"txtparent"
runat
=
"server"
>
<
ClientEvents
OnValueChanged
=
"ValueChanged"
/>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
Name
=
"child"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"NO"
UniqueName
=
"NO"
HeaderText
=
"NO"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"txtchild"
runat
=
"server"
>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
public
partial
class
forumpage : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
DateTime dt =
new
DateTime();
dynamic data =
new
[] {
new
{ ID = 1, Name =
"Name1"
, customdate=dt,NO = 1},
new
{ ID = 2, Name =
"Name2"
, customdate=dt,NO = 1},
new
{ ID = 3, Name =
"Name3"
, customdate=dt,NO = 1},
new
{ ID = 4, Name =
"Name4"
, customdate=dt,NO = 1},
new
{ ID = 5, Name =
"Name5"
, customdate=dt,NO = 1}
};
RadGrid1.DataSource = data;
}
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
}
protected
void
RadGrid1_InsertCommand(
object
sender, GridCommandEventArgs e)
{
}
protected
void
RadGrid1_DetailTableDataBind(
object
sender, GridDetailTableDataBindEventArgs e)
{
DateTime dt =
new
DateTime();
dynamic data =
new
[] {
new
{ ID = 11, Name =
"Name1"
, customdate=dt,NO = 1},
new
{ ID = 22, Name =
"Name2"
, customdate=dt,NO = 1},
new
{ ID = 33, Name =
"Name3"
, customdate=dt,NO = 1},
new
{ ID = 44, Name =
"Name4"
, customdate=dt,NO = 1},
new
{ ID = 55, Name =
"Name5"
, customdate=dt,NO = 1}
};
e.DetailTableView.DataSource = data;
}
}
Thanks,
Jayesh Goyani
0

Jayesh Goyani
Top achievements
Rank 2
answered on 06 Apr 2012, 10:17 AM
Hello Noraset,
Client side is harder.
Server Side:
Thanks,
Jayesh Goyani
Client side is harder.
Server Side:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="forumpage.aspx.cs" Inherits="forumpage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
>
<
MasterTableView
DataKeyNames
=
"ID"
ClientDataKeyNames
=
"ID"
Name
=
"parent"
HierarchyLoadMode
=
"Client"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"NO"
UniqueName
=
"NO"
HeaderText
=
"NO"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"txtparent"
runat
=
"server"
AutoPostBack
=
"true"
OnTextChanged
=
"txtparent_TextChanged"
>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
Name
=
"child"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
UniqueName
=
"ID"
HeaderText
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"NO"
UniqueName
=
"NO"
HeaderText
=
"NO"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"txtchild"
runat
=
"server"
>
</
telerik:RadNumericTextBox
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
public
partial
class
forumpage : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
DateTime dt =
new
DateTime();
dynamic data =
new
[] {
new
{ ID = 1, Name =
"Name1"
, customdate=dt,NO = 1},
new
{ ID = 2, Name =
"Name2"
, customdate=dt,NO = 1},
new
{ ID = 3, Name =
"Name3"
, customdate=dt,NO = 1},
new
{ ID = 4, Name =
"Name4"
, customdate=dt,NO = 1},
new
{ ID = 5, Name =
"Name5"
, customdate=dt,NO = 1}
};
RadGrid1.DataSource = data;
}
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
}
protected
void
RadGrid1_InsertCommand(
object
sender, GridCommandEventArgs e)
{
}
protected
void
RadGrid1_DetailTableDataBind(
object
sender, GridDetailTableDataBindEventArgs e)
{
DateTime dt =
new
DateTime();
dynamic data =
new
[] {
new
{ ID = 11, Name =
"Name1"
, customdate=dt,NO = 1},
new
{ ID = 22, Name =
"Name2"
, customdate=dt,NO = 1},
new
{ ID = 33, Name =
"Name3"
, customdate=dt,NO = 1},
new
{ ID = 44, Name =
"Name4"
, customdate=dt,NO = 1},
new
{ ID = 55, Name =
"Name5"
, customdate=dt,NO = 1}
};
e.DetailTableView.DataSource = data;
}
protected
void
txtparent_TextChanged(
object
sender, EventArgs e)
{
RadNumericTextBox txtparent = sender
as
RadNumericTextBox;
GridDataItem item =txtparent.NamingContainer
as
GridDataItem;
if
(item.HasChildItems)
{
foreach
(GridDataItem citem
in
item.ChildItem.NestedTableViews[0].Items)
{
RadNumericTextBox txtchild = citem.FindControl(
"txtchild"
)
as
RadNumericTextBox;
txtchild.Value = txtparent.Value;
}
}
}
}
Thanks,
Jayesh Goyani