Hi
I have a fairly standard radgrid with masterview and detail tables.
When editing an item at the top level (parent item), how would I go about auto-expanding the child rows and putting the parent and child rows in edit mode?
Thanks
David
I have a fairly standard radgrid with masterview and detail tables.
When editing an item at the top level (parent item), how would I go about auto-expanding the child rows and putting the parent and child rows in edit mode?
Thanks
David
4 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 20 Apr 2012, 07:52 AM
Hi David,
I guess you want the parent as well as child item in edit mode when you put a particular row in edit.Try the following code snippet.
C#:
Regards,
Princy.
I guess you want the parent as well as child item in edit mode when you put a particular row in edit.Try the following code snippet.
C#:
public
static
Int32 EmpId = 0;
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem eitem = (GridEditableItem)e.Item;
Int32 Id = Convert.ToInt32((eitem[
"EmployeeID"
].Controls[0]
as
TextBox).Text);
//EmployeeID is the DataKeyName
EmpId = Id;
}
}
protected
void
RadGrid1_PreRender(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
RadGrid1.MasterTableView.Items)
{
GridTableView tableView = (GridTableView)item.ChildItem.NestedTableViews[0];
if
(Convert.ToInt32(item.GetDataKeyValue(
"EmployeeID"
).ToString()) == EmpId)
{
item.Expanded =
true
;
//Expanding parent row
foreach
(GridItem childItem
in
tableView.Items)
{
GridEditableItem editableItem = childItem
as
GridDataItem;
editableItem.Edit =
true
;
//making child item editable
}
}
tableView.Rebind();
}
}
Regards,
Princy.
0
Contact
Top achievements
Rank 1
answered on 24 Apr 2012, 03:54 PM
Thanks, the code you provided worked.
This led to another issue, once the child elements are expanded I can't then save or cancel - due to the following error:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.
The viewstate is enabled on the radgrid.
Do you have any suggestions? Would it be possible to make changes to both the parent and child rows then perform a single save?
Thanks
This led to another issue, once the child elements are expanded I can't then save or cancel - due to the following error:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.
The viewstate is enabled on the radgrid.
Do you have any suggestions? Would it be possible to make changes to both the parent and child rows then perform a single save?
Thanks
0
Princy
Top achievements
Rank 2
answered on 25 Apr 2012, 12:52 PM
Hi David,
Unfortunately I couldn't replicate the error you are facing.Here is the complete code I tried with a modification in the PreRender.
ASPX:
C#:
Thanks,
Princy.
Unfortunately I couldn't replicate the error you are facing.Here is the complete code I tried with a modification in the PreRender.
ASPX:
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"SqlDataSource1"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
OnPreRender
=
"RadGrid1_PreRender"
AllowMultiRowEdit
=
"true"
onitemcommand
=
"RadGrid1_ItemCommand"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
DataKeyNames
=
"EmployeeID"
Name
=
"Master"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"EmployeeID"
UniqueName
=
"EmployeeID"
HeaderText
=
"EmployeeID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FirstName"
UniqueName
=
"FirstName"
HeaderText
=
"FirstName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridEditCommandColumn
></
telerik:GridEditCommandColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"TerritoryID"
Name
=
"Detail"
DataSourceID
=
"SqlDataSource2"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"EmployeeID"
HeaderText
=
"EmployeeID"
UniqueName
=
"EmployeeID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TerritoryID"
HeaderText
=
"TerritoryID"
UniqueName
=
"TerritoryID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridEditCommandColumn
></
telerik:GridEditCommandColumn
>
</
Columns
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"EmployeeID"
MasterKeyField
=
"EmployeeID"
/>
</
ParentTableRelation
>
</
telerik:GridTableView
>
</
DetailTables
>
</
MasterTableView
>
</
telerik:RadGrid
>
C#:
public
static
Int32 EmpId = 0;
public
static
string
commandName =
""
;
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem eitem = (GridEditableItem)e.Item;
Int32 Id = Convert.ToInt32((eitem[
"EmployeeID"
].Controls[0]
as
TextBox).Text);
//EmployeeID is the DataKeyName
EmpId = Id;
}
}
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.EditCommandName && e.Item.OwnerTableView.Name ==
"Master"
)
{
commandName =
"Edit"
;
}
}
protected
void
RadGrid1_PreRender(
object
sender, EventArgs e)
{
if
(commandName ==
"Edit"
)
{
foreach
(GridDataItem item
in
RadGrid1.MasterTableView.Items)
{
GridTableView tableView = (GridTableView)item.ChildItem.NestedTableViews[0];
if
(Convert.ToInt32(item.GetDataKeyValue(
"EmployeeID"
).ToString()) == EmpId)
{
item.Expanded =
true
;
//Expanding parent row
foreach
(GridItem childItem
in
tableView.Items)
{
GridEditableItem editableItem = childItem
as
GridDataItem;
editableItem.Edit =
true
;
//making child item editable
}
}
tableView.Rebind();
}
commandName =
""
;
}
}
Thanks,
Princy.
0
Anuja
Top achievements
Rank 1
answered on 13 Jun 2014, 04:59 AM
Hi ,
I want grid as per the attached image. In telerik grid am not able to find any thing related to that. Please do support me for better
development and progress.
Thanks and Regards
Anuja.J
I want grid as per the attached image. In telerik grid am not able to find any thing related to that. Please do support me for better
development and progress.
Thanks and Regards
Anuja.J