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