step 1. in design
telerik:RadGrid ID="rgCustomer" runat="server" OnNeedDataSource="rgCustomer_NeedDataSource"
OnItemDataBound="rgCustomer_ItemDataBound1"
MasterTableView DataKeyNames="CustomerID"
NestedViewTemplate
telerik:RadGrid ID="rgCustomerDetails" runat="server" Visible="true" AllowPaging="true"
PageSize="10"
MasterTableView AutoGenerateColumns="true"
MasterTableView
telerik:RadGrid
NestedViewTemplate
MasterTableView
telerik:RadGrid
step 2 in code behind
private DataSet BindGrid(int typeId)
{
Hashtable objHashTable = new Hashtable();
objHashTable.Add("@TypeID", typeId);
SqlHelper objSqlHelper = new SqlHelper();
DataSet dsCustomer = new DataSet();
try
{
dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
rgCustomer.DataSource = dsCustomer;
rgCustomer.DataBind();
}
catch (Exception ex)
{
}
finally
{
objSqlHelper.CloseConnection();
}
return dsCustomer;
}
protected void rgCustomer_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
{
if (e.Column.UniqueName == "ExpandColumn") //Hiding the expand collapse column
{
e.Column.Visible = false;
}
}
private DataSet BindInnerGrid(int typeId, string customerId)
{
Hashtable objHashTable = new Hashtable();
objHashTable.Add("@TypeID", typeId);
objHashTable.Add("@CustomerId", customerId);
SqlHelper objSqlHelper = new SqlHelper();
DataSet dsCustomer = new DataSet();
try
{
dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
}
catch (Exception ex)
{
}
finally
{
objSqlHelper.CloseConnection();
}
return dsCustomer;
}
protected void rgCustomer_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
//rgCustomer.Rebind();
}
protected void rgCustomer_ItemDataBound1(object sender, GridItemEventArgs e)
{
if (e.Item is GridNestedViewItem)// to access a row
{
GridNestedViewItem item = e.Item as GridNestedViewItem;
RadGrid grid = (RadGrid)sender;
GridDataItem data = (GridDataItem)item.ParentItem;
string customerId = data.GetDataKeyValue("CustomerID").ToString();
RadGrid grid2 = item.FindControl("rgCustomerDetails") as RadGrid;
DataSet dsOrderds = BindInnerGrid(4, customerId);
grid2.DataSource = dsOrderds;
grid2.DataBind();
}
}
telerik:RadGrid ID="rgCustomer" runat="server" OnNeedDataSource="rgCustomer_NeedDataSource"
OnItemDataBound="rgCustomer_ItemDataBound1"
MasterTableView DataKeyNames="CustomerID"
NestedViewTemplate
telerik:RadGrid ID="rgCustomerDetails" runat="server" Visible="true" AllowPaging="true"
PageSize="10"
MasterTableView AutoGenerateColumns="true"
MasterTableView
telerik:RadGrid
NestedViewTemplate
MasterTableView
telerik:RadGrid
step 2 in code behind
private DataSet BindGrid(int typeId)
{
Hashtable objHashTable = new Hashtable();
objHashTable.Add("@TypeID", typeId);
SqlHelper objSqlHelper = new SqlHelper();
DataSet dsCustomer = new DataSet();
try
{
dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
rgCustomer.DataSource = dsCustomer;
rgCustomer.DataBind();
}
catch (Exception ex)
{
}
finally
{
objSqlHelper.CloseConnection();
}
return dsCustomer;
}
protected void rgCustomer_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
{
if (e.Column.UniqueName == "ExpandColumn") //Hiding the expand collapse column
{
e.Column.Visible = false;
}
}
private DataSet BindInnerGrid(int typeId, string customerId)
{
Hashtable objHashTable = new Hashtable();
objHashTable.Add("@TypeID", typeId);
objHashTable.Add("@CustomerId", customerId);
SqlHelper objSqlHelper = new SqlHelper();
DataSet dsCustomer = new DataSet();
try
{
dsCustomer = objSqlHelper.ExecuteProc("SPTelerickImplementation", objHashTable);
}
catch (Exception ex)
{
}
finally
{
objSqlHelper.CloseConnection();
}
return dsCustomer;
}
protected void rgCustomer_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
//rgCustomer.Rebind();
}
protected void rgCustomer_ItemDataBound1(object sender, GridItemEventArgs e)
{
if (e.Item is GridNestedViewItem)// to access a row
{
GridNestedViewItem item = e.Item as GridNestedViewItem;
RadGrid grid = (RadGrid)sender;
GridDataItem data = (GridDataItem)item.ParentItem;
string customerId = data.GetDataKeyValue("CustomerID").ToString();
RadGrid grid2 = item.FindControl("rgCustomerDetails") as RadGrid;
DataSet dsOrderds = BindInnerGrid(4, customerId);
grid2.DataSource = dsOrderds;
grid2.DataBind();
}
}