Thursday, 3 April 2014

radgrid with another radgrid

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();


        }
    }

No comments:

Post a Comment