Hi Rahul Kasar,
I'm not able to replicate the issue at my end. Here is a sample code snippet that i tried which works fine as expected:
ASPX:
<
telerik:RadGrid
ID
=
"RadGrid1"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
>
<
MasterTableView
DataKeyNames
=
"CustomerID"
CommandItemDisplay
=
"Top"
>
<
CommandItemTemplate
>
<
asp:ImageButton
ID
=
"WordImageButton"
runat
=
"server"
AlternateText
=
"Export To Word"
OnClick
=
"WordImageButton_Click"
/>
</
CommandItemTemplate
>
<
Columns
>
<
telerik:GridBoundColumn
HeaderText
=
"CustomerID"
DataField
=
"CustomerID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ContactName"
HeaderText
=
"ContactName"
UniqueName
=
"ContactName"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"OrderID"
Name
=
"Orders"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"CustomerID"
MasterKeyField
=
"CustomerID"
/>
</
ParentTableRelation
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"OrderID"
HeaderText
=
"OrderID"
UniqueName
=
"OrderID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ShipName"
HeaderText
=
"ShipName"
UniqueName
=
"ShipName"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"OrderID"
Name
=
"OrderDetails"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"OrderID"
MasterKeyField
=
"OrderID"
/>
</
ParentTableRelation
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"UnitPrice"
HeaderText
=
"UnitPrice"
UniqueName
=
"UnitPrice"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
</
telerik:GridTableView
>
</
DetailTables
>
</
MasterTableView
>
</
telerik:RadGrid
>
C#:
protected
void
RadGrid1_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
if
(!e.IsFromDetailTable)
{
RadGrid1.DataSource = GetDataTable(
"SELECT * FROM Customers"
);
}
}
protected
void
RadGrid1_DetailTableDataBind(
object
source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
{
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"Orders"
:
{
string
CustomerID = dataItem.GetDataKeyValue(
"CustomerID"
).ToString();
e.DetailTableView.DataSource = GetDataTable(
"SELECT * FROM Orders WHERE CustomerID = '"
+ CustomerID +
"'"
);
break
;
}
case
"OrderDetails"
:
{
string
OrderID = dataItem.GetDataKeyValue(
"OrderID"
).ToString();
e.DetailTableView.DataSource = GetDataTable(
"SELECT * FROM [Order Details] WHERE OrderID = "
+ OrderID);
break
;
}
}
}
public
DataTable GetDataTable(
string
query)
{
String ConnString = ConfigurationManager.ConnectionStrings[
"Northwind_newConnectionString3"
].ConnectionString;
SqlConnection conn =
new
SqlConnection(ConnString);
SqlDataAdapter adapter =
new
SqlDataAdapter();
adapter.SelectCommand =
new
SqlCommand(query, conn);
DataTable myDataTable =
new
DataTable();
conn.Open();
try
{
adapter.Fill(myDataTable);
}
finally
{
conn.Close();
}
return
myDataTable;
}
protected
void
WordImageButton_Click(
object
sender, ImageClickEventArgs e)
{
RadGrid1.MasterTableView.HierarchyDefaultExpanded =
true
;
RadGrid1.MasterTableView.DetailTables[0].HierarchyDefaultExpanded =
true
;
RadGrid1.ExportSettings.ExportOnlyData =
true
;
RadGrid1.ExportSettings.IgnorePaging =
true
;
RadGrid1.ExportSettings.OpenInNewWindow =
true
;
RadGrid1.MasterTableView.ExportToWord();
}
Thanks,
Princy