Nested AgaxGrid Is it possible using ADC controls

Last post 01-07-2009 5:17 AM by rameshnagineni. 35 replies.
Page 2 of 3 (36 items) < Previous 1 2 3 Next >
Sort Posts: Previous Next
  • 12-22-2008 7:20 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     thanks a lot  for gave me a samplecode...

    Here i have one Issue...

    When Iam appended Gridview2 to Cell(Gridview1 (var cell = evt.target.parentNode;) its working fine..

    When Iam appended Gridview2 to Row(Gridview1(var row= evt.target.parentNode.parentNode;) its not working ..........!

    How can I Append childgrid to parentGrid Row....

    Please calrify me.......?

    i am waiting for ur reply......

    Thanks a lot .....

     

  •  Advertisement

    Featured Advertisement

     
  • 12-22-2008 7:30 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     

     Hi thanks a lot for  providing me a sample code..

    here I have One Issue...

    When Iam appended to Gridview2 to (Gridview1) cell--->(evt.target.parentNode); its working fine...

    When I am appended to Gridview2  to  ( Gridview1) Row-->(evt.target.parentNode.parentNode);--its not working..

    Please calrify me...

    Iam waiting for yor reply...

    Thanks a lot..

  • 12-22-2008 12:33 PM In reply to

    • xxXd
    • Top 10 Contributor
    • Joined on 12-18-2006
    • Slacker
    • Points 19,057

    Re: Nested AgaxGrid Is it possible using ADC controls

    Try this. This should work. 

     

    function showNested(evt, context) {
                DataService.GetAllSupplierById(context.id, loadNestedGridView);

                var tableRef = $get('<%= GridView1.ClientID %>');
                //insert a new row
             
                var row = evt.target.parentNode.parentNode;

                var newRow = tableRef.insertRow(row.rowIndex+1);

                // Insert a cell in the row at index 0
                var newCell = newRow.insertCell(0);


                newCell.colSpan = GridView1.get_columns().length;
               
                newCell.appendChild($get("nested"));

            }

  • 12-24-2008 1:32 PM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

    Hi,

    Thanks a lot for Replying to all  the forum issues at short time Big Smile

    Please clarify this..

     Gridview1--> when after moving  first page to second page ...

     var div= $get("nested");

    DIV is getting NULL...

    How can I Get 'Nested DIV' at second page also...

    Please clarify me..

    AND HAPPY X-MAS.....and 2 ALL forum membres

    Thanks

    Ramesh

     

     

  • 12-24-2008 2:26 PM In reply to

    • xxXd
    • Top 10 Contributor
    • Joined on 12-18-2006
    • Slacker
    • Points 19,057

    Re: Nested AgaxGrid Is it possible using ADC controls

    Merry Christmas to You!

    I have tested the page with Pager added, however, I never had a problem going from page to page.

    Thinking about it, I would think it is unlikely that the div would be null when page index changed.

    Can you post your code?

    Please note, for the next few days I would not have access to the internet.

  • 12-26-2008 3:50 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

    Please verify this code....

     

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxGrid.aspx.cs" Inherits="AjaxGrid" %>

    <!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>Untitled Page</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />

        <script runat="server">
        </script>

        <script language="javascript" type="text/javascript">
        debugger;
           var _gridView;
            var _pager;
            var _gridView2;
            var _pager2;
            var _childPage=0;
             var _row;
             var _childrows=null;
             var _sObj=null;
             var _sImgId=null
       
             var ds1=new Array();
            

                    function expandcollapse(row,imgid)
                    {
                    debugger;
                            _row=row;
                            _gridView2 = null;
                         
            var div = _gridView._element.document.getElementById(_sObj);
            var img = _gridView._element.document.getElementById(imgid);
           
            if (_gridView._element.document.getElementById('nested').style.display == "none")
            {
               _gridView._element.document.getElementById('nested').style.display = "block";
                if (_row == 'alt')
                {
                    img.src = "Images/minus.gif";
                }
                else
                {
                    img.src = "Images/minus.gif";
                }
                img.alt = "Close to view other Customers";
            }
            else
            {
              _gridView._element.document.getElementById('nested').style.display = "none";
                if (_row == 'alt')
                {
                    img.src = "Images/plus.gif";
                }
                else
                {
                    img.src = "Images/plus.gif";
                }
                img.alt = "Expand to show Orders";
            }
             
         }
     
     //***************GirdView1 Events *****************//
                function pageLoad(sender, e)
                {
                    debugger;
                    _gridView = $find('<%= GridView1.ClientID %>');
                    _pager = $find('<%= Pager1.ClientID %>');
                    _gridView2=$find('<%=GridView2.ClientID %>');
                    _pager2=$find('<%= Pager2.ClientID %>');
                   
                    loadCustomers();
                }
                function loadCustomers()
                {
                    debugger;
                   
                    var sortColumn = GridView1.get_sortColumn();
                    var sortOrder = (GridView1.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                    var startIndex = (Pager1.get_pageIndex() * Pager1.get_pageSize());
                    DataService.GetCustomerList(startIndex, Pager1.get_pageSize(), sortColumn, sortOrder, onLoadSuccess);
                   
                   
    //                 writeMessage('');
    //                 onLoadSuccess(ds1.value)
                }
                function onLoadSuccess(result)
                {
                    debugger;
                    Pager1.set_recordCount(result.Total);
                    GridView1.set_dataSource(result.Rows);
                    GridView1.dataBind();
                }
                function onSortCommand(sender, e)
                {
                    GridView1.set_sortColumn(e.get_sortColumn())
                    GridView1.set_sortOrder(e.get_sortOrder());
                    Pager1.set_pageIndex(0); // need to reset the page index as sorting is changed
                    loadCustomers();
                }
               function onEditCommand(sender,e)
               {
               }
               function onUpdateCommand(sender,e)
               {
               }
               function onDeleteCommand(sender,e)
               {
               }
               function LoadOrders(CustomerId)
               {
       
                   debugger;
                  
                        var sortColumn = GridView2.get_sortColumn();
                        var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                        var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                        DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,CustomerId, loadchildGridView);
               }
                   
               function loadchildGridView(result)
               {
                    debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
               }
               function BindChildGrid(id,create_row)
               {
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,id, loadNestedGridView);
                        
                        
                       
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row =create_row;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       var nestedDiv=$get("nested");
                        newCell.appendChild($get("nested"));
               }
                function showNested(evt, context)
                {
                 debugger;
                         _sObj=context[0].id;
                        _sImgId=context[1].imgId;
                        _row=context[2].rowid;
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,context[0].id, loadNestedGridView);
                           
                           
                          AjaxGrid.GetCustomerList1('', '', '', ''); 
                        // onLoadSuccess(ds1.value);
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row = evt.target.parentNode.parentNode;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       
                   
                         var nestedDiv= GridView1._element.parentNode.parentNode.parentNode.document.getElementById('nested')
                        //var nestedDiv=$get("nested");
                        newCell.appendChild(nestedDiv);
             
                }

                 function loadNestedGridView(result)
                 {
                 debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                    var img = _gridView._element.document.getElementById(_sImgId);
                   if (_gridView._element.document.getElementById('nested').style.display == "none")
                    {
                           _gridView._element.document.getElementById('nested').style.display = "block";
                        if (_row == 'alt')
                        {
                            img.src = "Images/minus.gif";
                        }
                        else
                        {
                            img.src = "Images/minus.gif";
                        }
                        img.alt = "Close to view other Customers";
                    }
                    else
                    {
                          _gridView._element.document.getElementById('nested').style.display = "none";
                            if (_row == 'alt')
                            {
                                img.src = "Images/plus.gif";
                            }
                            else
                            {
                                img.src = "Images/plus.gif";
                            }
                            img.alt = "Expand to show Orders";
                    }
                 }
               function onRowCreated(sender,e)
               {
               }
             function onRowDataBound(sender, e)
             {
             debugger;
             var row = e.get_row(); //.get_rowIndex()
                 if(row.get_isDataRowType())
                 {
                        var rIndex = row.get_rowIndex();
                        var id = GridView1.get_dataKeys()[rIndex];
                        var context = new Array();
                         context[0] = { id:  id};

                        //create function callback so we can pass the parent id           
                         var callback = Function.createCallback(showNested, context);
                        //  alert(rIndex);
                         var imgrow=row.findControl('imgdiv');
                            if (imgrow)
                             {
                                $addHandler(imgrow, "click", callback);
                                context[1]={imgId:imgrow.id};
                                context[2]={rowid:row};
                            }
                        var create_row= row._container;
                         //BindChildGrid(id,create_row);
                    }   
                //if(imgrow)
                // imgrow.onclick = function () {expandcollapse(row,imgrow.id)};
             }

                 function pageChanged(sender, e)
                {
                    debugger;
                    Pager1.set_pageIndex(e.get_newPageIndex());
                    loadCustomers();
                }
               
                //***************GirdView1 Events *****************//
               //***************GirdView2 Events *****************//
               function onEditCommand_2(sender,e)
               {
               }
               function onCancelCommand_2(sender,e)
               {
               }
               function onUpdateCommand_2(sender,e)
               {
               }
               function onDeleteCommand_2(sender,e)
               {
               }
               function onRowCommand_2(sender, e)
               {
                //debugger;
               }
               function onRowDataBound_2(sender, e)
               {
               }
               function onRowCreated_2(sender, e)
               {

               }
               function onSortCommand_2(sender, e)
               {
                debugger;
                    GridView2.set_sortColumn(e.get_sortColumn())
                    GridView2.set_sortOrder(e.get_sortOrder());
                    Pager2.set_pageIndex(0); // need to reset the page index as sorting is changed
                    LoadOrders(_sObj);
               }
            function pageChanged_2(sender, e)
            {
                debugger;
                Pager2.set_pageIndex(e.get_newPageIndex());
                LoadOrders(_sObj);
            }
               //***************GirdView2 Events *****************//
            function onColumnsLoaded(sender, e)
            {
               loadCustomers();
            }
            function onColumnDragStart(sender, e)
            {
                var column = e.get_column();
               // writeMessage(String.format('{0} Column Drag Started<br/>', column.get_headerText()));
            }

            function onColumnDropped(sender, e)
            {
                var column = e.get_column();
                //writeMessage(String.format('{0} Column Dropped in index {1} from index {2}<br/>', column.get_headerText(), e.get_newIndex(), e.get_oldIndex()));
                GridView1.saveColumnsToProfile('DndColumns');
            }

            function writeMessage(message)
            {
                debugger;
                $get('divEvents').innerHTML += message;
            }
           

        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="TheScriptManager" runat="server" EnablePageMethods="false"
                EnablePartialRendering="false">
                <Services>
                    <asp:ServiceReference Path="~/DataService.asmx" />
                </Services>
                <Scripts>
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewScript.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewDragDrop.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewGlitz.js" />
                </Scripts>
            </asp:ScriptManager>
            <AjaxData:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle" CellSpacing="0"
                CellPadding="3" SortColumn="ContactName" DataKeyName="ID" SortOrderAscendingImageUrl="~/Images/up.gif"
                SortOrderDescendingImageUrl="~/Images/dn.gif" RowCreatedEvent="onRowCreated"
                ColumnDragStartEvent="onColumnDragStart"
                ColumnsLoadedFromProfileEvent="onColumnsLoaded"
                ColumnDroppedEvent="onColumnDropped"
                SortCommandEvent="onSortCommand" RowDataBoundEvent="onRowDataBound" Font-Names="Verdana"
                Font-Size="X-Small" Width="453px">
                <RowStyle BackColor="Gainsboro" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                <FooterStyle BackColor="White" />
                <Columns>
                    <AjaxData:GridViewTemplateColumn ColumnID="1">
                        <ItemTemplate>
                            <img id="imgdiv" alt="Click to show/hide Orders for Customer" width="9px" border="0"
                                src="Images/plus.gif" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="2">
                        <ItemTemplate>
                            <input type="checkbox" id="chekId" visible="true" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ID" DataField="ID" SortField="CustomerID" ColumnID="3">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="CustomerName" DataField="ContactName" SortField="ContactName"
                        ColumnID="4">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ContactTitle" DataField="ContactTitle"
                        SortField="ContactTitle" ColumnID="5">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Address" DataField="Address" SortField="Address"
                        ColumnID="6">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Country" DataField="Country" SortField="Country"
                        ColumnID="7">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="8">
                        <ItemTemplate>
                            <span></span>
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewCommandColumn ShowEditButton="True" AllowDragAndDrop="False" ColumnID="9"
                        ShowCancelButton="False" />
                </Columns>
            </AjaxData:GridView>
            <tr>
              
                    <AjaxData:Pager ID="Pager1"  Width="100px" runat="server" CssClass="PagerRowStyle" CurrentPageStyle-CssClass="PagerCurrentPage"
                        OtherPageStyle-CssClass="PagerOtherPage" PageChangedEvent="pageChanged">
                    </AjaxData:Pager>
              
            </tr>
            <div id="nested" style="left: 20px; display:none ">
                <tr>
                    <td colspan="100%" style="height: 180px; width: 927px;">
                        <AjaxData:GridView ID="GridView2" Width="450px" Font-Size="X-Small" Font-Names="Verdana"
                            runat="server" SortColumn="OrderID" ShowFooter="true" CellSpacing="0" CellPadding="3"
                            SortOrderAscendingImageUrl="~/Images/up.gif" SortOrderDescendingImageUrl="~/Images/dn.gif"
                            SortCommandEvent="onSortCommand_2" RowDataBoundEvent="onRowDataBound_2" RowCreatedEvent="onRowCreated_2"
                            EditCommandEvent="onEditCommand_2" DeleteCommandEvent="onDeleteCommand_2" UpdateCommandEvent="onUpdateCommand_2"
                            CancelCommandEvent="onCancelCommand_2" Height="112px">
                            <RowStyle BackColor="Gainsboro" />
                            <AlternatingRowStyle BackColor="White" />
                            <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                            <FooterStyle BackColor="White" />
                            <Columns>
                                <AjaxData:GridViewTemplateColumn ColumnID="1">
                                    <ItemTemplate>
                                        <input type="checkbox" id="chekId2" visible="true" />
                                    </ItemTemplate>
                                </AjaxData:GridViewTemplateColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="OrderID" DataField="OrderID" SortField="OrderID"
                                    ColumnID="1">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="Freight" DataField="Freight" SortField="Freight"
                                    ColumnID="2">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipName" DataField="ShipName" SortField="ShipName"
                                    ColumnID="3">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipAddress" DataField="ShipAddress" SortField="ShipAddress"
                                    ColumnID="4">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewCommandColumn HeaderText="Edit" ShowEditButton="True" AllowDragAndDrop="False"
                                    ColumnID="5" ShowCancelButton="False">
                                </AjaxData:GridViewCommandColumn>
                            </Columns>
                        </AjaxData:GridView>
                    </td>
                </tr>
                <tr>
                    <td>
                        <AjaxData:Pager ID="Pager2" runat="server" PageSize="5" CssClass="PagerRowStyle"
                            CurrentPageStyle-CssClass="PagerCurrentPage" Height="20px" OtherPageStyle-CssClass="PagerOtherPage"
                            PageChangedEvent="pageChanged_2">
                        </AjaxData:Pager>
                    </td>
                </tr>
            </div>
        </form>
    </body>
    </html>


    //*************************DataServise*****************//
        public PagedResult<Customer> GetCustomerList(int start, int max, string sortColumn, string sortOrder)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "Company", true) == 0))
            {
                sortColumn = "CompanyName";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [CustomerID],                                                  " +
                               "        [CompanyName],                                                 " +
                               "        [ContactName],                                                 " +
                               "        [ContactTitle],                                                " +
                               "        [Address],                                                     " +
                               "        [City],                                                        " +
                               "        [PostalCode],                                                  " +
                               "        [Country],                                                     " +
                               "        [Phone]                                                        " +
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "        SELECT  [CustomerID],                                          " +
                               "                [CompanyName],                                         " +
                               "                [ContactName],                                         " +
                               "                [ContactTitle],                                        " +
                               "                [Address],                                             " +
                               "                [City],                                                " +
                               "                [PostalCode],                                          " +
                               "                [Country],                                             " +
                               "                [Phone],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Customers]                                            " +
                               "     ) AS [CustomerWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(CustomerID)                                               " +
                               "FROM                                                                   " +
                               "    [Customers]                                                        ";

            int total = 0;
            List<Customer> list = new List<Customer>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Customer> result = new PagedResult<Customer>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public PagedResult<Orders> GetOrdersList(int start, int max, string sortColumn, string sortOrder,string CustID)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "OrderID", true) == 0))
            {
                sortColumn = "OrderID";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress]                                                " +
                             
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "      SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Orders]  WHERE [CustomerID]='{4}'                                                 " +
                               "     ) AS [OrdersWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                              
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(OrderID)                                               " +
                               "FROM                                                                   " +
                               "    [Orders]  WHERE [CustomerID]='{4}'                                                       ";

            int total = 0;
            List<Orders> list = new List<Orders>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                  
                        cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max, CustID);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders c = BuildOrders(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Orders> result = new PagedResult<Orders>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public Customer[ GetAllCustomers()
        {

            List<Customer> list = new List<Customer>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [CustomerID],                                                  " +
                                       "        [CompanyName],                                                 " +
                                       "        [ContactName],                                                 " +
                                       "        [ContactTitle],                                                " +
                                       "        [Address],                                                     " +
                                       "        [City],                                                        " +
                                       "        [PostalCode],                                                  " +
                                       "        [Country],                                                     " +
                                       "        [Phone]                                                        " +
                                       "        From                                                         "+
                                        "   [Customers]                                                        " +
                                        "    ORDER BY [CompanyName] ASC                                         ";
                   

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }
        public Orders[ GetAllOrders()
        {

            List<Orders> list = new List<Orders>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [OrderID],                                           " +
                               "        [Freight],                                                  " +
                               "        [ShipName],                                                  " +
                               "        [ShipAddress]                                                " +
                               "         FROM                                                        " +
                               "        [Orders]                                                          " +
                                 "    ORDER BY [OrderID] ASC                                    ";

     


                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders ord = BuildOrders(rdr);

                            list.Add(ord);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }


    //**************@@@@@@@@@@@*************************//
    public class Customer : BaseEntity
    {
        private string _id;
        private string _company = string.Empty;
        private string _contactName = string.Empty;
        private string _contactTitle = string.Empty;
        private string _address = string.Empty;
        private string _city = string.Empty;
        private string _postalCode = string.Empty;
        private string _country = string.Empty;
        private string _phone = string.Empty;

        public string ID
        {
            get
            {
                return _id;
            }
            set
            {
                _id = value;
            }
        }

        public string Company
        {
            get
            {
                return _company;
            }
            set
            {
                _company = value;
            }
        }

        public string ContactName
        {
            get
            {
                return _contactName;
            }
            set
            {
                _contactName = value;
            }
        }

        public string ContactTitle
        {
            get
            {
                return _contactTitle;
            }
            set
            {
                _contactTitle = value;
            }
        }

        public string Address
        {
            get
            {
                return _address;
            }
            set
            {
                _address = value;
            }
        }

        public string City
        {
            get
            {
                return _city;
            }
            set
            {
                _city = value;
            }
        }

        public string PostalCode
        {
            get
            {
                return _postalCode;
            }
            set
            {
                _postalCode = value;
            }
        }

        public string Country
        {
            get
            {
                return _country;
            }
            set
            {
                _country = value;
            }
        }

        public string Phone
        {
            get
            {
                return _phone;
            }
            set
            {
                _phone = value;
            }
        }
    }
    public class Orders : BaseEntity
    {
        private int _orderid;
        private decimal _freight;
        private string _shipname = string.Empty;
        private string _shipaddress = string.Empty;

        public int OrderID
        {
            get
            {
                return _orderid;
            }
            set
            {
                _orderid = value;
            }
        }

        public decimal Freight
        {
            get
            {
                return _freight;
            }
            set
            {
                _freight = value;
            }
        }

        public string ShipName
        {
            get
            {
                return _shipname;
            }
            set
            {
                _shipname = value;
            }
        }

        public string ShipAddress
        {
            get
            {
                return _shipaddress;
            }
            set
            {
                _shipaddress = value;
            }
        }


    }

  • 12-26-2008 3:57 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxGrid.aspx.cs" Inherits="AjaxGrid" %>

    <!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>Untitled Page</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />

        <script runat="server">
        </script>

        <script language="javascript" type="text/javascript">
        debugger;
           var _gridView;
            var _pager;
            var _gridView2;
            var _pager2;
            var _childPage=0;
             var _row;
             var _childrows=null;
             var _sObj=null;
             var _sImgId=null
       
             var ds1=new Array();
            

                    function expandcollapse(row,imgid)
                    {
                    debugger;
                            _row=row;
                            _gridView2 = null;
                         
            var div = _gridView._element.document.getElementById(_sObj);
            var img = _gridView._element.document.getElementById(imgid);
           
            if (_gridView._element.document.getElementById('nested').style.display == "none")
            {
               _gridView._element.document.getElementById('nested').style.display = "block";
                if (_row == 'alt')
                {
                    img.src = "Images/minus.gif";
                }
                else
                {
                    img.src = "Images/minus.gif";
                }
                img.alt = "Close to view other Customers";
            }
            else
            {
              _gridView._element.document.getElementById('nested').style.display = "none";
                if (_row == 'alt')
                {
                    img.src = "Images/plus.gif";
                }
                else
                {
                    img.src = "Images/plus.gif";
                }
                img.alt = "Expand to show Orders";
            }
             
         }
     
     //***************GirdView1 Events *****************//
                function pageLoad(sender, e)
                {
                    debugger;
                    _gridView = $find('<%= GridView1.ClientID %>');
                    _pager = $find('<%= Pager1.ClientID %>');
                    _gridView2=$find('<%=GridView2.ClientID %>');
                    _pager2=$find('<%= Pager2.ClientID %>');
                   
                    loadCustomers();
                }
                function loadCustomers()
                {
                    debugger;
                   
                    var sortColumn = GridView1.get_sortColumn();
                    var sortOrder = (GridView1.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                    var startIndex = (Pager1.get_pageIndex() * Pager1.get_pageSize());
                    DataService.GetCustomerList(startIndex, Pager1.get_pageSize(), sortColumn, sortOrder, onLoadSuccess);
                   
                   
    //                 writeMessage('');
    //                 onLoadSuccess(ds1.value)
                }
                function onLoadSuccess(result)
                {
                    debugger;
                    Pager1.set_recordCount(result.Total);
                    GridView1.set_dataSource(result.Rows);
                    GridView1.dataBind();
                }
                function onSortCommand(sender, e)
                {
                    GridView1.set_sortColumn(e.get_sortColumn())
                    GridView1.set_sortOrder(e.get_sortOrder());
                    Pager1.set_pageIndex(0); // need to reset the page index as sorting is changed
                    loadCustomers();
                }
               function onEditCommand(sender,e)
               {
               }
               function onUpdateCommand(sender,e)
               {
               }
               function onDeleteCommand(sender,e)
               {
               }
               function LoadOrders(CustomerId)
               {
       
                   debugger;
                  
                        var sortColumn = GridView2.get_sortColumn();
                        var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                        var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                        DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,CustomerId, loadchildGridView);
               }
                   
               function loadchildGridView(result)
               {
                    debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
               }
               function BindChildGrid(id,create_row)
               {
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,id, loadNestedGridView);
                        
                        
                       
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row =create_row;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       var nestedDiv=$get("nested");
                        newCell.appendChild($get("nested"));
               }
                function showNested(evt, context)
                {
                 debugger;
                         _sObj=context[0].id;
                        _sImgId=context[1].imgId;
                        _row=context[2].rowid;
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,context[0].id, loadNestedGridView);
                           
                           
                          AjaxGrid.GetCustomerList1('', '', '', ''); 
                        // onLoadSuccess(ds1.value);
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row = evt.target.parentNode.parentNode;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       
                   
                         var nestedDiv= GridView1._element.parentNode.parentNode.parentNode.document.getElementById('nested')
                        //var nestedDiv=$get("nested");
                        newCell.appendChild(nestedDiv);
             
                }

                 function loadNestedGridView(result)
                 {
                 debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                    var img = _gridView._element.document.getElementById(_sImgId);
                   if (_gridView._element.document.getElementById('nested').style.display == "none")
                    {
                           _gridView._element.document.getElementById('nested').style.display = "block";
                        if (_row == 'alt')
                        {
                            img.src = "Images/minus.gif";
                        }
                        else
                        {
                            img.src = "Images/minus.gif";
                        }
                        img.alt = "Close to view other Customers";
                    }
                    else
                    {
                          _gridView._element.document.getElementById('nested').style.display = "none";
                            if (_row == 'alt')
                            {
                                img.src = "Images/plus.gif";
                            }
                            else
                            {
                                img.src = "Images/plus.gif";
                            }
                            img.alt = "Expand to show Orders";
                    }
                 }
               function onRowCreated(sender,e)
               {
               }
             function onRowDataBound(sender, e)
             {
             debugger;
             var row = e.get_row(); //.get_rowIndex()
                 if(row.get_isDataRowType())
                 {
                        var rIndex = row.get_rowIndex();
                        var id = GridView1.get_dataKeys()[rIndex];
                        var context = new Array();
                         context[0] = { id:  id};

                        //create function callback so we can pass the parent id           
                         var callback = Function.createCallback(showNested, context);
                        //  alert(rIndex);
                         var imgrow=row.findControl('imgdiv');
                            if (imgrow)
                             {
                                $addHandler(imgrow, "click", callback);
                                context[1]={imgId:imgrow.id};
                                context[2]={rowid:row};
                            }
                        var create_row= row._container;
                         //BindChildGrid(id,create_row);
                    }   
                //if(imgrow)
                // imgrow.onclick = function () {expandcollapse(row,imgrow.id)};
             }

                 function pageChanged(sender, e)
                {
                    debugger;
                    Pager1.set_pageIndex(e.get_newPageIndex());
                    loadCustomers();
                }
               
                //***************GirdView1 Events *****************//
               //***************GirdView2 Events *****************//
               function onEditCommand_2(sender,e)
               {
               }
               function onCancelCommand_2(sender,e)
               {
               }
               function onUpdateCommand_2(sender,e)
               {
               }
               function onDeleteCommand_2(sender,e)
               {
               }
               function onRowCommand_2(sender, e)
               {
                //debugger;
               }
               function onRowDataBound_2(sender, e)
               {
               }
               function onRowCreated_2(sender, e)
               {

               }
               function onSortCommand_2(sender, e)
               {
                debugger;
                    GridView2.set_sortColumn(e.get_sortColumn())
                    GridView2.set_sortOrder(e.get_sortOrder());
                    Pager2.set_pageIndex(0); // need to reset the page index as sorting is changed
                    LoadOrders(_sObj);
               }
            function pageChanged_2(sender, e)
            {
                debugger;
                Pager2.set_pageIndex(e.get_newPageIndex());
                LoadOrders(_sObj);
            }
               //***************GirdView2 Events *****************//
            function onColumnsLoaded(sender, e)
            {
               loadCustomers();
            }
            function onColumnDragStart(sender, e)
            {
                var column = e.get_column();
               // writeMessage(String.format('{0} Column Drag Started<br/>', column.get_headerText()));
            }

            function onColumnDropped(sender, e)
            {
                var column = e.get_column();
                //writeMessage(String.format('{0} Column Dropped in index {1} from index {2}<br/>', column.get_headerText(), e.get_newIndex(), e.get_oldIndex()));
                GridView1.saveColumnsToProfile('DndColumns');
            }

            function writeMessage(message)
            {
                debugger;
                $get('divEvents').innerHTML += message;
            }
           

        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="TheScriptManager" runat="server" EnablePageMethods="false"
                EnablePartialRendering="false">
                <Services>
                    <asp:ServiceReference Path="~/DataService.asmx" />
                </Services>
                <Scripts>
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewScript.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewDragDrop.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewGlitz.js" />
                </Scripts>
            </asp:ScriptManager>
            <AjaxData:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle" CellSpacing="0"
                CellPadding="3" SortColumn="ContactName" DataKeyName="ID" SortOrderAscendingImageUrl="~/Images/up.gif"
                SortOrderDescendingImageUrl="~/Images/dn.gif" RowCreatedEvent="onRowCreated"
                ColumnDragStartEvent="onColumnDragStart"
                ColumnsLoadedFromProfileEvent="onColumnsLoaded"
                ColumnDroppedEvent="onColumnDropped"
                SortCommandEvent="onSortCommand" RowDataBoundEvent="onRowDataBound" Font-Names="Verdana"
                Font-Size="X-Small" Width="453px">
                <RowStyle BackColor="Gainsboro" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                <FooterStyle BackColor="White" />
                <Columns>
                    <AjaxData:GridViewTemplateColumn ColumnID="1">
                        <ItemTemplate>
                            <img id="imgdiv" alt="Click to show/hide Orders for Customer" width="9px" border="0"
                                src="Images/plus.gif" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="2">
                        <ItemTemplate>
                            <input type="checkbox" id="chekId" visible="true" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ID" DataField="ID" SortField="CustomerID" ColumnID="3">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="CustomerName" DataField="ContactName" SortField="ContactName"
                        ColumnID="4">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ContactTitle" DataField="ContactTitle"
                        SortField="ContactTitle" ColumnID="5">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Address" DataField="Address" SortField="Address"
                        ColumnID="6">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Country" DataField="Country" SortField="Country"
                        ColumnID="7">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="8">
                        <ItemTemplate>
                            <span></span>
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewCommandColumn ShowEditButton="True" AllowDragAndDrop="False" ColumnID="9"
                        ShowCancelButton="False" />
                </Columns>
            </AjaxData:GridView>
            <tr>
              
                    <AjaxData:Pager ID="Pager1"  Width="100px" runat="server" CssClass="PagerRowStyle" CurrentPageStyle-CssClass="PagerCurrentPage"
                        OtherPageStyle-CssClass="PagerOtherPage" PageChangedEvent="pageChanged">
                    </AjaxData:Pager>
              
            </tr>
            <div id="nested" style="left: 20px; display:none ">
                <tr>
                    <td colspan="100%" style="height: 180px; width: 927px;">
                        <AjaxData:GridView ID="GridView2" Width="450px" Font-Size="X-Small" Font-Names="Verdana"
                            runat="server" SortColumn="OrderID" ShowFooter="true" CellSpacing="0" CellPadding="3"
                            SortOrderAscendingImageUrl="~/Images/up.gif" SortOrderDescendingImageUrl="~/Images/dn.gif"
                            SortCommandEvent="onSortCommand_2" RowDataBoundEvent="onRowDataBound_2" RowCreatedEvent="onRowCreated_2"
                            EditCommandEvent="onEditCommand_2" DeleteCommandEvent="onDeleteCommand_2" UpdateCommandEvent="onUpdateCommand_2"
                            CancelCommandEvent="onCancelCommand_2" Height="112px">
                            <RowStyle BackColor="Gainsboro" />
                            <AlternatingRowStyle BackColor="White" />
                            <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                            <FooterStyle BackColor="White" />
                            <Columns>
                                <AjaxData:GridViewTemplateColumn ColumnID="1">
                                    <ItemTemplate>
                                        <input type="checkbox" id="chekId2" visible="true" />
                                    </ItemTemplate>
                                </AjaxData:GridViewTemplateColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="OrderID" DataField="OrderID" SortField="OrderID"
                                    ColumnID="1">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="Freight" DataField="Freight" SortField="Freight"
                                    ColumnID="2">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipName" DataField="ShipName" SortField="ShipName"
                                    ColumnID="3">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipAddress" DataField="ShipAddress" SortField="ShipAddress"
                                    ColumnID="4">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewCommandColumn HeaderText="Edit" ShowEditButton="True" AllowDragAndDrop="False"
                                    ColumnID="5" ShowCancelButton="False">
                                </AjaxData:GridViewCommandColumn>
                            </Columns>
                        </AjaxData:GridView>
                    </td>
                </tr>
                <tr>
                    <td>
                        <AjaxData:Pager ID="Pager2" runat="server" PageSize="5" CssClass="PagerRowStyle"
                            CurrentPageStyle-CssClass="PagerCurrentPage" Height="20px" OtherPageStyle-CssClass="PagerOtherPage"
                            PageChangedEvent="pageChanged_2">
                        </AjaxData:Pager>
                    </td>
                </tr>
            </div>
        </form>
    </body>
    </html>


    //*************************DataServise*****************//
        public PagedResult<Customer> GetCustomerList(int start, int max, string sortColumn, string sortOrder)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "Company", true) == 0))
            {
                sortColumn = "CompanyName";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [CustomerID],                                                  " +
                               "        [CompanyName],                                                 " +
                               "        [ContactName],                                                 " +
                               "        [ContactTitle],                                                " +
                               "        [Address],                                                     " +
                               "        [City],                                                        " +
                               "        [PostalCode],                                                  " +
                               "        [Country],                                                     " +
                               "        [Phone]                                                        " +
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "        SELECT  [CustomerID],                                          " +
                               "                [CompanyName],                                         " +
                               "                [ContactName],                                         " +
                               "                [ContactTitle],                                        " +
                               "                [Address],                                             " +
                               "                [City],                                                " +
                               "                [PostalCode],                                          " +
                               "                [Country],                                             " +
                               "                [Phone],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Customers]                                            " +
                               "     ) AS [CustomerWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(CustomerID)                                               " +
                               "FROM                                                                   " +
                               "    [Customers]                                                        ";

            int total = 0;
            List<Customer> list = new List<Customer>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Customer> result = new PagedResult<Customer>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public PagedResult<Orders> GetOrdersList(int start, int max, string sortColumn, string sortOrder,string CustID)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "OrderID", true) == 0))
            {
                sortColumn = "OrderID";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress]                                                " +
                             
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "      SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Orders]  WHERE [CustomerID]='{4}'                                                 " +
                               "     ) AS [OrdersWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                              
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(OrderID)                                               " +
                               "FROM                                                                   " +
                               "    [Orders]  WHERE [CustomerID]='{4}'                                                       ";

            int total = 0;
            List<Orders> list = new List<Orders>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                  
                        cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max, CustID);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders c = BuildOrders(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Orders> result = new PagedResult<Orders>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public Customer[ GetAllCustomers()
        {

            List<Customer> list = new List<Customer>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [CustomerID],                                                  " +
                                       "        [CompanyName],                                                 " +
                                       "        [ContactName],                                                 " +
                                       "        [ContactTitle],                                                " +
                                       "        [Address],                                                     " +
                                       "        [City],                                                        " +
                                       "        [PostalCode],                                                  " +
                                       "        [Country],                                                     " +
                                       "        [Phone]                                                        " +
                                       "        From                                                         "+
                                        "   [Customers]                                                        " +
                                        "    ORDER BY [CompanyName] ASC                                         ";
                   

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }
        public Orders[ GetAllOrders()
        {

            List<Orders> list = new List<Orders>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [OrderID],                                           " +
                               "        [Freight],                                                  " +
                               "        [ShipName],                                                  " +
                               "        [ShipAddress]                                                " +
                               "         FROM                                                        " +
                               "        [Orders]                                                          " +
                                 "    ORDER BY [OrderID] ASC                                    ";

     


                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders ord = BuildOrders(rdr);

                            list.Add(ord);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }


    //**************@@@@@@@@@@@*************************//
    public class Customer : BaseEntity
    {
        private string _id;
        private string _company = string.Empty;
        private string _contactName = string.Empty;
        private string _contactTitle = string.Empty;
        private string _address = string.Empty;
        private string _city = string.Empty;
        private string _postalCode = string.Empty;
        private string _country = string.Empty;
        private string _phone = string.Empty;

        public string ID
        {
            get
            {
                return _id;
            }
            set
            {
                _id = value;
            }
        }

        public string Company
        {
            get
            {
                return _company;
            }
            set
            {
                _company = value;
            }
        }

        public string ContactName
        {
            get
            {
                return _contactName;
            }
            set
            {
                _contactName = value;
            }
        }

        public string ContactTitle
        {
            get
            {
                return _contactTitle;
            }
            set
            {
                _contactTitle = value;
            }
        }

        public string Address
        {
            get
            {
                return _address;
            }
            set
            {
                _address = value;
            }
        }

        public string City
        {
            get
            {
                return _city;
            }
            set
            {
                _city = value;
            }
        }

        public string PostalCode
        {
            get
            {
                return _postalCode;
            }
            set
            {
                _postalCode = value;
            }
        }

        public string Country
        {
            get
            {
                return _country;
            }
            set
            {
                _country = value;
            }
        }

        public string Phone
        {
            get
            {
                return _phone;
            }
            set
            {
                _phone = value;
            }
        }
    }
    public class Orders : BaseEntity
    {
        private int _orderid;
        private decimal _freight;
        private string _shipname = string.Empty;
        private string _shipaddress = string.Empty;

        public int OrderID
        {
            get
            {
                return _orderid;
            }
            set
            {
                _orderid = value;
            }
        }

        public decimal Freight
        {
            get
            {
                return _freight;
            }
            set
            {
                _freight = value;
            }
        }

        public string ShipName
        {
            get
            {
                return _shipname;
            }
            set
            {
                _shipname = value;
            }
        }

        public string ShipAddress
        {
            get
            {
                return _shipaddress;
            }
            set
            {
                _shipaddress = value;
            }
        }


    }

  • 12-26-2008 5:41 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxGrid.aspx.cs" Inherits="AjaxGrid" %>

    <!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>Untitled Page</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />

        <script runat="server">
        </script>

        <script language="javascript" type="text/javascript">
        debugger;
           var _gridView;
            var _pager;
            var _gridView2;
            var _pager2;
            var _childPage=0;
             var _row;
             var _childrows=null;
             var _sObj=null;
             var _sImgId=null
       
             var ds1=new Array();
            

                    function expandcollapse(row,imgid)
                    {
                    debugger;
                            _row=row;
                            _gridView2 = null;
                         
            var div = _gridView._element.document.getElementById(_sObj);
            var img = _gridView._element.document.getElementById(imgid);
           
            if (_gridView._element.document.getElementById('nested').style.display == "none")
            {
               _gridView._element.document.getElementById('nested').style.display = "block";
                if (_row == 'alt')
                {
                    img.src = "Images/minus.gif";
                }
                else
                {
                    img.src = "Images/minus.gif";
                }
                img.alt = "Close to view other Customers";
            }
            else
            {
              _gridView._element.document.getElementById('nested').style.display = "none";
                if (_row == 'alt')
                {
                    img.src = "Images/plus.gif";
                }
                else
                {
                    img.src = "Images/plus.gif";
                }
                img.alt = "Expand to show Orders";
            }
             
         }
     
     //***************GirdView1 Events *****************//
                function pageLoad(sender, e)
                {
                    debugger;
                    _gridView = $find('<%= GridView1.ClientID %>');
                    _pager = $find('<%= Pager1.ClientID %>');
                    _gridView2=$find('<%=GridView2.ClientID %>');
                    _pager2=$find('<%= Pager2.ClientID %>');
                   
                    loadCustomers();
                }
                function loadCustomers()
                {
                    debugger;
                   
                    var sortColumn = GridView1.get_sortColumn();
                    var sortOrder = (GridView1.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                    var startIndex = (Pager1.get_pageIndex() * Pager1.get_pageSize());
                    DataService.GetCustomerList(startIndex, Pager1.get_pageSize(), sortColumn, sortOrder, onLoadSuccess);
                   
                   
    //                 writeMessage('');
    //                 onLoadSuccess(ds1.value)
                }
                function onLoadSuccess(result)
                {
                    debugger;
                    Pager1.set_recordCount(result.Total);
                    GridView1.set_dataSource(result.Rows);
                    GridView1.dataBind();
                }
                function onSortCommand(sender, e)
                {
                    GridView1.set_sortColumn(e.get_sortColumn())
                    GridView1.set_sortOrder(e.get_sortOrder());
                    Pager1.set_pageIndex(0); // need to reset the page index as sorting is changed
                    loadCustomers();
                }
               function onEditCommand(sender,e)
               {
               }
               function onUpdateCommand(sender,e)
               {
               }
               function onDeleteCommand(sender,e)
               {
               }
               function LoadOrders(CustomerId)
               {
       
                   debugger;
                  
                        var sortColumn = GridView2.get_sortColumn();
                        var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                        var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                        DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,CustomerId, loadchildGridView);
               }
                   
               function loadchildGridView(result)
               {
                    debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
               }
               function BindChildGrid(id,create_row)
               {
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,id, loadNestedGridView);
                        
                        
                       
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row =create_row;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       var nestedDiv=$get("nested");
                        newCell.appendChild($get("nested"));
               }
                function showNested(evt, context)
                {
                 debugger;
                         _sObj=context[0].id;
                        _sImgId=context[1].imgId;
                        _row=context[2].rowid;
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,context[0].id, loadNestedGridView);
                           
                           
                          AjaxGrid.GetCustomerList1('', '', '', ''); 
                        // onLoadSuccess(ds1.value);
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row = evt.target.parentNode.parentNode;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       
                   
                         var nestedDiv= GridView1._element.parentNode.parentNode.parentNode.document.getElementById('nested')
                        //var nestedDiv=$get("nested");
                        newCell.appendChild(nestedDiv);
             
                }

                 function loadNestedGridView(result)
                 {
                 debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                    var img = _gridView._element.document.getElementById(_sImgId);
                   if (_gridView._element.document.getElementById('nested').style.display == "none")
                    {
                           _gridView._element.document.getElementById('nested').style.display = "block";
                        if (_row == 'alt')
                        {
                            img.src = "Images/minus.gif";
                        }
                        else
                        {
                            img.src = "Images/minus.gif";
                        }
                        img.alt = "Close to view other Customers";
                    }
                    else
                    {
                          _gridView._element.document.getElementById('nested').style.display = "none";
                            if (_row == 'alt')
                            {
                                img.src = "Images/plus.gif";
                            }
                            else
                            {
                                img.src = "Images/plus.gif";
                            }
                            img.alt = "Expand to show Orders";
                    }
                 }
               function onRowCreated(sender,e)
               {
               }
             function onRowDataBound(sender, e)
             {
             debugger;
             var row = e.get_row(); //.get_rowIndex()
                 if(row.get_isDataRowType())
                 {
                        var rIndex = row.get_rowIndex();
                        var id = GridView1.get_dataKeys()[rIndex];
                        var context = new Array();
                         context[0] = { id:  id};

                        //create function callback so we can pass the parent id           
                         var callback = Function.createCallback(showNested, context);
                        //  alert(rIndex);
                         var imgrow=row.findControl('imgdiv');
                            if (imgrow)
                             {
                                $addHandler(imgrow, "click", callback);
                                context[1]={imgId:imgrow.id};
                                context[2]={rowid:row};
                            }
                        var create_row= row._container;
                         //BindChildGrid(id,create_row);
                    }   
                //if(imgrow)
                // imgrow.onclick = function () {expandcollapse(row,imgrow.id)};
             }

                 function pageChanged(sender, e)
                {
                    debugger;
                    Pager1.set_pageIndex(e.get_newPageIndex());
                    loadCustomers();
                }
               
                //***************GirdView1 Events *****************//
               //***************GirdView2 Events *****************//
               function onEditCommand_2(sender,e)
               {
               }
               function onCancelCommand_2(sender,e)
               {
               }
               function onUpdateCommand_2(sender,e)
               {
               }
               function onDeleteCommand_2(sender,e)
               {
               }
               function onRowCommand_2(sender, e)
               {
                //debugger;
               }
               function onRowDataBound_2(sender, e)
               {
               }
               function onRowCreated_2(sender, e)
               {

               }
               function onSortCommand_2(sender, e)
               {
                debugger;
                    GridView2.set_sortColumn(e.get_sortColumn())
                    GridView2.set_sortOrder(e.get_sortOrder());
                    Pager2.set_pageIndex(0); // need to reset the page index as sorting is changed
                    LoadOrders(_sObj);
               }
            function pageChanged_2(sender, e)
            {
                debugger;
                Pager2.set_pageIndex(e.get_newPageIndex());
                LoadOrders(_sObj);
            }
               //***************GirdView2 Events *****************//
            function onColumnsLoaded(sender, e)
            {
               loadCustomers();
            }
            function onColumnDragStart(sender, e)
            {
                var column = e.get_column();
               // writeMessage(String.format('{0} Column Drag Started<br/>', column.get_headerText()));
            }

            function onColumnDropped(sender, e)
            {
                var column = e.get_column();
                //writeMessage(String.format('{0} Column Dropped in index {1} from index {2}<br/>', column.get_headerText(), e.get_newIndex(), e.get_oldIndex()));
                GridView1.saveColumnsToProfile('DndColumns');
            }

            function writeMessage(message)
            {
                debugger;
                $get('divEvents').innerHTML += message;
            }
           

        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="TheScriptManager" runat="server" EnablePageMethods="false"
                EnablePartialRendering="false">
                <Services>
                    <asp:ServiceReference Path="~/DataService.asmx" />
                </Services>
                <Scripts>
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewScript.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewDragDrop.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewGlitz.js" />
                </Scripts>
            </asp:ScriptManager>
            <AjaxData:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle" CellSpacing="0"
                CellPadding="3" SortColumn="ContactName" DataKeyName="ID" SortOrderAscendingImageUrl="~/Images/up.gif"
                SortOrderDescendingImageUrl="~/Images/dn.gif" RowCreatedEvent="onRowCreated"
                ColumnDragStartEvent="onColumnDragStart"
                ColumnsLoadedFromProfileEvent="onColumnsLoaded"
                ColumnDroppedEvent="onColumnDropped"
                SortCommandEvent="onSortCommand" RowDataBoundEvent="onRowDataBound" Font-Names="Verdana"
                Font-Size="X-Small" Width="453px">
                <RowStyle BackColor="Gainsboro" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                <FooterStyle BackColor="White" />
                <Columns>
                    <AjaxData:GridViewTemplateColumn ColumnID="1">
                        <ItemTemplate>
                            <img id="imgdiv" alt="Click to show/hide Orders for Customer" width="9px" border="0"
                                src="Images/plus.gif" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="2">
                        <ItemTemplate>
                            <input type="checkbox" id="chekId" visible="true" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ID" DataField="ID" SortField="CustomerID" ColumnID="3">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="CustomerName" DataField="ContactName" SortField="ContactName"
                        ColumnID="4">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ContactTitle" DataField="ContactTitle"
                        SortField="ContactTitle" ColumnID="5">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Address" DataField="Address" SortField="Address"
                        ColumnID="6">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Country" DataField="Country" SortField="Country"
                        ColumnID="7">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="8">
                        <ItemTemplate>
                            <span></span>
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewCommandColumn ShowEditButton="True" AllowDragAndDrop="False" ColumnID="9"
                        ShowCancelButton="False" />
                </Columns>
            </AjaxData:GridView>
            <tr>
              
                    <AjaxData:Pager ID="Pager1"  Width="100px" runat="server" CssClass="PagerRowStyle" CurrentPageStyle-CssClass="PagerCurrentPage"
                        OtherPageStyle-CssClass="PagerOtherPage" PageChangedEvent="pageChanged">
                    </AjaxData:Pager>
              
            </tr>
            <div id="nested" style="left: 20px; display:none ">
                <tr>
                    <td colspan="100%" style="height: 180px; width: 927px;">
                        <AjaxData:GridView ID="GridView2" Width="450px" Font-Size="X-Small" Font-Names="Verdana"
                            runat="server" SortColumn="OrderID" ShowFooter="true" CellSpacing="0" CellPadding="3"
                            SortOrderAscendingImageUrl="~/Images/up.gif" SortOrderDescendingImageUrl="~/Images/dn.gif"
                            SortCommandEvent="onSortCommand_2" RowDataBoundEvent="onRowDataBound_2" RowCreatedEvent="onRowCreated_2"
                            EditCommandEvent="onEditCommand_2" DeleteCommandEvent="onDeleteCommand_2" UpdateCommandEvent="onUpdateCommand_2"
                            CancelCommandEvent="onCancelCommand_2" Height="112px">
                            <RowStyle BackColor="Gainsboro" />
                            <AlternatingRowStyle BackColor="White" />
                            <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                            <FooterStyle BackColor="White" />
                            <Columns>
                                <AjaxData:GridViewTemplateColumn ColumnID="1">
                                    <ItemTemplate>
                                        <input type="checkbox" id="chekId2" visible="true" />
                                    </ItemTemplate>
                                </AjaxData:GridViewTemplateColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="OrderID" DataField="OrderID" SortField="OrderID"
                                    ColumnID="1">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="Freight" DataField="Freight" SortField="Freight"
                                    ColumnID="2">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipName" DataField="ShipName" SortField="ShipName"
                                    ColumnID="3">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipAddress" DataField="ShipAddress" SortField="ShipAddress"
                                    ColumnID="4">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewCommandColumn HeaderText="Edit" ShowEditButton="True" AllowDragAndDrop="False"
                                    ColumnID="5" ShowCancelButton="False">
                                </AjaxData:GridViewCommandColumn>
                            </Columns>
                        </AjaxData:GridView>
                    </td>
                </tr>
                <tr>
                    <td>
                        <AjaxData:Pager ID="Pager2" runat="server" PageSize="5" CssClass="PagerRowStyle"
                            CurrentPageStyle-CssClass="PagerCurrentPage" Height="20px" OtherPageStyle-CssClass="PagerOtherPage"
                            PageChangedEvent="pageChanged_2">
                        </AjaxData:Pager>
                    </td>
                </tr>
            </div>
        </form>
    </body>
    </html>


    //*************************DataServise*****************//
        public PagedResult<Customer> GetCustomerList(int start, int max, string sortColumn, string sortOrder)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "Company", true) == 0))
            {
                sortColumn = "CompanyName";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [CustomerID],                                                  " +
                               "        [CompanyName],                                                 " +
                               "        [ContactName],                                                 " +
                               "        [ContactTitle],                                                " +
                               "        [Address],                                                     " +
                               "        [City],                                                        " +
                               "        [PostalCode],                                                  " +
                               "        [Country],                                                     " +
                               "        [Phone]                                                        " +
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "        SELECT  [CustomerID],                                          " +
                               "                [CompanyName],                                         " +
                               "                [ContactName],                                         " +
                               "                [ContactTitle],                                        " +
                               "                [Address],                                             " +
                               "                [City],                                                " +
                               "                [PostalCode],                                          " +
                               "                [Country],                                             " +
                               "                [Phone],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Customers]                                            " +
                               "     ) AS [CustomerWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(CustomerID)                                               " +
                               "FROM                                                                   " +
                               "    [Customers]                                                        ";

            int total = 0;
            List<Customer> list = new List<Customer>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Customer> result = new PagedResult<Customer>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public PagedResult<Orders> GetOrdersList(int start, int max, string sortColumn, string sortOrder,string CustID)
        {
            if (max == 0)
            {
                max = 10;
            }

            if (string.IsNullOrEmpty(sortColumn) || (string.Compare(sortColumn, "OrderID", true) == 0))
            {
                sortColumn = "OrderID";
            }

            if (string.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "ASC";
            }

            const string SQL = "SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress]                                                " +
                             
                               "FROM                                                                   " +
                               "     (                                                                 " +
                               "      SELECT  [OrderID],                                                  " +
                               "        [Freight],                                                 " +
                               "        [ShipName],                                                 " +
                               "        [ShipAddress],                                               " +
                               "                ROW_NUMBER() OVER (ORDER BY [{0}] {1}) AS [RowIndex]   " +
                               "         FROM                                                          " +
                               "                [Orders]  WHERE [CustomerID]='{4}'                                                 " +
                               "     ) AS [OrdersWithRowIndex]                                       " +
                               "WHERE                                                                  " +
                              
                               "        ([RowIndex] > {2})                                             " +
                               "AND     ([RowIndex] <= ({2} + {3}))                                    " +
                               "                                                                       " +
                               "SELECT COUNT(OrderID)                                               " +
                               "FROM                                                                   " +
                               "    [Orders]  WHERE [CustomerID]='{4}'                                                       ";

            int total = 0;
            List<Orders> list = new List<Orders>();

            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                  
                        cmd.CommandText = string.Format(SQL, sortColumn, sortOrder, start, max, CustID);

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders c = BuildOrders(rdr);

                            list.Add(c);
                        }

                        if ((rdr.NextResult()) && (rdr.Read()))
                        {
                            total = rdr.GetInt32(0);
                        }
                    }
                }
            }

            if ((list.Count == 0) || (total == 0))
            {
                return null;
            }

            PagedResult<Orders> result = new PagedResult<Orders>();

            result.Rows = list;
            result.Total = total;

            return result;
        }
        [WebMethod()]
        public Customer[ GetAllCustomers()
        {

            List<Customer> list = new List<Customer>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [CustomerID],                                                  " +
                                       "        [CompanyName],                                                 " +
                                       "        [ContactName],                                                 " +
                                       "        [ContactTitle],                                                " +
                                       "        [Address],                                                     " +
                                       "        [City],                                                        " +
                                       "        [PostalCode],                                                  " +
                                       "        [Country],                                                     " +
                                       "        [Phone]                                                        " +
                                       "        From                                                         "+
                                        "   [Customers]                                                        " +
                                        "    ORDER BY [CompanyName] ASC                                         ";
                   

                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Customer c = BuildCustomer(rdr);

                            list.Add(c);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }
        public Orders[ GetAllOrders()
        {

            List<Orders> list = new List<Orders>();
            using (IDbConnection cnn = CreateConnection())
            {
                using (IDbCommand cmd = cnn.CreateCommand())
                {
                    cmd.CommandText = "SELECT  [OrderID],                                           " +
                               "        [Freight],                                                  " +
                               "        [ShipName],                                                  " +
                               "        [ShipAddress]                                                " +
                               "         FROM                                                        " +
                               "        [Orders]                                                          " +
                                 "    ORDER BY [OrderID] ASC                                    ";

     


                    using (IDataReader rdr = cmd.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Orders ord = BuildOrders(rdr);

                            list.Add(ord);
                        }
                    }
                }
            }
            if (list.Count == 0)
            {
                return null;
            }

            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (i == 0)
            //    {
            //        listIdea.Active = true;
            //    }
            //    else
            //    {
            //        listIdea.Active = ((i % 2) == 0);
            //    }
            //}

            return list.ToArray();

        }


    //**************@@@@@@@@@@@*************************//
    public class Customer : BaseEntity
    {
        private string _id;
        private string _company = string.Empty;
        private string _contactName = string.Empty;
        private string _contactTitle = string.Empty;
        private string _address = string.Empty;
        private string _city = string.Empty;
        private string _postalCode = string.Empty;
        private string _country = string.Empty;
        private string _phone = string.Empty;

        public string ID
        {
            get
            {
                return _id;
            }
            set
            {
                _id = value;
            }
        }

        public string Company
        {
            get
            {
                return _company;
            }
            set
            {
                _company = value;
            }
        }

        public string ContactName
        {
            get
            {
                return _contactName;
            }
            set
            {
                _contactName = value;
            }
        }

        public string ContactTitle
        {
            get
            {
                return _contactTitle;
            }
            set
            {
                _contactTitle = value;
            }
        }

        public string Address
        {
            get
            {
                return _address;
            }
            set
            {
                _address = value;
            }
        }

        public string City
        {
            get
            {
                return _city;
            }
            set
            {
                _city = value;
            }
        }

        public string PostalCode
        {
            get
            {
                return _postalCode;
            }
            set
            {
                _postalCode = value;
            }
        }

        public string Country
        {
            get
            {
                return _country;
            }
            set
            {
                _country = value;
            }
        }

        public string Phone
        {
            get
            {
                return _phone;
            }
            set
            {
                _phone = value;
            }
        }
    }
    public class Orders : BaseEntity
    {
        private int _orderid;
        private decimal _freight;
        private string _shipname = string.Empty;
        private string _shipaddress = string.Empty;

        public int OrderID
        {
            get
            {
                return _orderid;
            }
            set
            {
                _orderid = value;
            }
        }

        public decimal Freight
        {
            get
            {
                return _freight;
            }
            set
            {
                _freight = value;
            }
        }

        public string ShipName
        {
            get
            {
                return _shipname;
            }
            set
            {
                _shipname = value;
            }
        }

        public string ShipAddress
        {
            get
            {
                return _shipaddress;
            }
            set
            {
                _shipaddress = value;
            }
        }


    }

  • 12-26-2008 9:14 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

    Please verify this 

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxGrid.aspx.cs" Inherits="AjaxGrid" %>

    <!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>Untitled Page</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />

        <script runat="server">
        </script>

        <script language="javascript" type="text/javascript">
        debugger;
             var _gridView;
             var _pager;
             var _gridView2;
            var _pager2;
            var _childPage=0;
             var _row;
             var _childrows=null;
             var _sObj=null;
             var _sImgId=null
             var _rowCount=null; 
             var _nestedDiv=null;
             var _nestedtable=null;
             var ds1=new Array();
            

       
     //***************GirdView1 Events *****************//
                function pageLoad(sender, e)
                {
                    debugger;
                    _gridView = $find('<%= GridView1.ClientID %>');
                    _pager = $find('<%= Pager1.ClientID %>');
                    _gridView2=$find('<%=GridView2.ClientID %>');
                    _pager2=$find('<%= Pager2.ClientID %>');
                    _nestedDiv=$get("nested");
                    _nestedtable =_nestedDiv.getElementsByTagName('table')[0];
                    loadCustomers();
                }
                function loadCustomers()
                {
                    debugger;
                   
                    var sortColumn = GridView1.get_sortColumn();
                    var sortOrder = (GridView1.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                    var startIndex = (Pager1.get_pageIndex() * Pager1.get_pageSize());
                    DataService.GetCustomerList(startIndex, Pager1.get_pageSize(), sortColumn, sortOrder, onLoadSuccess);
                   
                   
    //                 writeMessage('');
    //                 onLoadSuccess(ds1.value)
                }
                function onLoadSuccess(result)
                {
                    debugger;
                    _rowCount=result.Rows.length;
                    Pager1.set_recordCount(result.Total);
                    GridView1.set_dataSource(result.Rows);
                    GridView1.dataBind();
                   
                     var divChild=null;
                     var tr1;
                     var td1;
                      var tableRef;
                      var newRow;
                      var td2;
                       var td3;
                        var newCell;
                    for(var i=0;i<=GridView1._rows.length;i++)
                    {
                        _sObj=GridView1._dataKeysIdea;
                        //var nestedDiv;
                         if(_sObj)
                         {
                             //   nestedDiv=$get("nested"+_sObj);
                            //else
                               // nestedDiv=$get("nested");
                                 divChild= document.createElement('div');
                                 divChild.id='nested'+_sObj;
                                 divChild.style.display="none";
                                  tr1=document.createElement('tr');
                                  td1=document.createElement('td');
                                  td1.id='td_'+_sObj;
                                  td1.colspan="100%";
                               
                                 //td1.appendChild(_nestedtable);
                                 tr1.appendChild(td1);
                                 divChild.appendChild(tr1);
                                
                             tableRef = $get('<%= GridView1.ClientID %>');
                            //insert a new row
                            //var row = evt.target.parentNode.parentNode;
                           //  var row = evt.target.parentNode;
                             //newRow = tableRef.insertRow(i+2);
                             newRow = document.createElement('tr');
                             newRow.id='tr_'+_sObj;
                            // Insert a cell in the row at index 0
                              td2= document.createElement('td');
                              td3= document.createElement('td');
                             newRow.appendChild(td2);
                             newRow.appendChild(td3);
                            // newCell = newRow.insertCell(2);
                            newCell=document.createElement('td');
                            newCell.colSpan = GridView1.get_columns().length;
                            newCell.appendChild(divChild);
                           GridView1._rowsIdea._container.appendChild(newCell);
                       }
                           // divChild.appendChild(nestedDiv.innerHTML);
                          // _sObj=id;
                          // var create_row=row._container.appendChild(divChild);
                    }
                }
                function onSortCommand(sender, e)
                {
                    GridView1.set_sortColumn(e.get_sortColumn())
                    GridView1.set_sortOrder(e.get_sortOrder());
                    Pager1.set_pageIndex(0); // need to reset the page index as sorting is changed
                    loadCustomers();
                }
               function onEditCommand(sender,e)
               {
               }
               function onUpdateCommand(sender,e)
               {
               }
               function onDeleteCommand(sender,e)
               {
               }
               function LoadOrders(CustomerId)
               {
       
                   debugger;
                  
                        var sortColumn = GridView2.get_sortColumn();
                        var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                        var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                        DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,CustomerId, loadchildGridView);
               }
                   
               function loadchildGridView(result)
               {
                    debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                   
                        
                   
               }
               function BindChildGrid(id,create_row)
               {
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,id, loadNestedGridView);
                        
                        
                       
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row =create_row;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       var nestedDiv=$get("nested");
                        newCell.appendChild($get("nested"));
               }
                function showNested(evt, context)
                {
                 debugger;
                         _sObj=context[0].id;
                        _sImgId=context[1].imgId;
                        _row=context[2].rowid;
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,context[0].id, loadNestedGridView);
                           
                           
                          AjaxGrid.GetCustomerList1('', '', '', ''); 
                        // onLoadSuccess(ds1.value);
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        var nestedTableRef=$get('<%=GridView2.ClientID %>');
                        //insert a new row
                       // var row = evt.target.parentNode.parentNode;
                       //  var row = evt.target.parentNode;
                     //   var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                        // var td1= document.createElement('td');
                      //   var td2= document.createElement('td');
                     //    newRow.appendChild(td1);
                     //    newRow.appendChild(td2);
                     //   var newCell = newRow.insertCell(2);
                     //   newCell.colSpan = GridView1.get_columns().length;
                       
                        var child=tableRef.document.getElementById('td_'+_sObj);
                        child.appendChild(nestedTableRef);
                       
                         var img = _gridView._element.document.getElementById(_sImgId);
                   if (_gridView._element.document.getElementById('nested'+_sObj).style.display == "none")
                    {
                           _gridView._element.document.getElementById('nested'+_sObj).style.display = "block";
                        if (_row == 'alt')
                        {
                            img.src = "Images/minus.gif";
                        }
                        else
                        {
                            img.src = "Images/minus.gif";
                        }
                        img.alt = "Close to view other Customers";
                    }
                    else
                    {
                          _gridView._element.document.getElementById('nested').style.display = "none";
                            if (_row == 'alt')
                            {
                                img.src = "Images/plus.gif";
                            }
                            else
                            {
                                img.src = "Images/plus.gif";
                            }
                            img.alt = "Expand to show Orders";
                    }
                        // var nestedDiv= GridView1._element.parentNode.parentNode.parentNode.document.getElementById('nested')
                    //    var nestedDiv=$get('nested'+_sObj);
                     //   newCell.appendChild(nestedDiv);
             
                }

                 function loadNestedGridView(result)
                 {
                 debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                  
                 }
               function onRowCreated(sender,e)
               {
               }
             function onRowDataBound(sender, e)
             {
             debugger;
            
                var row = e.get_row(); //.get_rowIndex()
                 if(row.get_isDataRowType())
                 {
                     
                        var rIndex = row.get_rowIndex();
                        var id = GridView1.get_dataKeys()[rIndex];
                        var context = new Array();
                         context[0] = { id:  id};

                        //create function callback so we can pass the parent id           
                         var callback = Function.createCallback(showNested, context);
                        //  alert(rIndex);
                         var imgrow=row.findControl('imgdiv');
                            if (imgrow)
                             {
                                $addHandler(imgrow, "click", callback);
                                context[1]={imgId:imgrow.id};
                                context[2]={rowid:row};
                            }
                        var create_row= row._container;
                         //BindChildGrid(id,create_row);
                    }   
                //if(imgrow)
                // imgrow.onclick = function () {expandcollapse(row,imgrow.id)};
             }

                 function pageChanged(sender, e)
                {
                    debugger;
                    Pager1.set_pageIndex(e.get_newPageIndex());
                    loadCustomers();
                }
               
                //***************GirdView1 Events *****************//
               //***************GirdView2 Events *****************//
               function onEditCommand_2(sender,e)
               {
               }
               function onCancelCommand_2(sender,e)
               {
               }
               function onUpdateCommand_2(sender,e)
               {
               }
               function onDeleteCommand_2(sender,e)
               {
               }
               function onRowCommand_2(sender, e)
               {
                //debugger;
               }
               function onRowDataBound_2(sender, e)
               {
               }
               function onRowCreated_2(sender, e)
               {

               }
               function onSortCommand_2(sender, e)
               {
                debugger;
                    GridView2.set_sortColumn(e.get_sortColumn())
                    GridView2.set_sortOrder(e.get_sortOrder());
                    Pager2.set_pageIndex(0); // need to reset the page index as sorting is changed
                    LoadOrders(_sObj);
               }
            function pageChanged_2(sender, e)
            {
                debugger;
                Pager2.set_pageIndex(e.get_newPageIndex());
                LoadOrders(_sObj);
            }
               //***************GirdView2 Events *****************//
            function onColumnsLoaded(sender, e)
            {
               loadCustomers();
            }
            function onColumnDragStart(sender, e)
            {
                var column = e.get_column();
               // writeMessage(String.format('{0} Column Drag Started<br/>', column.get_headerText()));
            }

            function onColumnDropped(sender, e)
            {
                var column = e.get_column();
                //writeMessage(String.format('{0} Column Dropped in index {1} from index {2}<br/>', column.get_headerText(), e.get_newIndex(), e.get_oldIndex()));
                GridView1.saveColumnsToProfile('DndColumns');
            }

            function writeMessage(message)
            {
                debugger;
                $get('divEvents').innerHTML += message;
            }
           

        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="TheScriptManager" runat="server" EnablePageMethods="false"
                EnablePartialRendering="false">
                <Services>
                    <asp:ServiceReference Path="~/DataService.asmx" />
                </Services>
                <Scripts>
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewScript.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewDragDrop.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewGlitz.js" />
                </Scripts>
            </asp:ScriptManager>
            <AjaxData:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle" CellSpacing="0"
                CellPadding="3" SortColumn="ContactName" DataKeyName="ID" SortOrderAscendingImageUrl="~/Images/up.gif"
                SortOrderDescendingImageUrl="~/Images/dn.gif" RowCreatedEvent="onRowCreated"
                ColumnDragStartEvent="onColumnDragStart"
                ColumnsLoadedFromProfileEvent="onColumnsLoaded"
                ColumnDroppedEvent="onColumnDropped"
                SortCommandEvent="onSortCommand" RowDataBoundEvent="onRowDataBound" Font-Names="Verdana"
                Font-Size="X-Small" Width="453px">
                <RowStyle BackColor="Gainsboro" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                <FooterStyle BackColor="White" />
                <Columns>
                    <AjaxData:GridViewTemplateColumn ColumnID="1">
                        <ItemTemplate>
                            <img id="imgdiv" alt="Click to show/hide Orders for Customer" width="9px" border="0"
                                src="Images/plus.gif" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="2">
                        <ItemTemplate>
                            <input type="checkbox" id="chekId" visible="true" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ID" DataField="ID" SortField="CustomerID" ColumnID="3">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="CustomerName" DataField="ContactName" SortField="ContactName"
                        ColumnID="4">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ContactTitle" DataField="ContactTitle"
                        SortField="ContactTitle" ColumnID="5">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Address" DataField="Address" SortField="Address"
                        ColumnID="6">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Country" DataField="Country" SortField="Country"
                        ColumnID="7">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="8">
                        <ItemTemplate>
                            <span></span>
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewCommandColumn ShowEditButton="True" AllowDragAndDrop="False" ColumnID="9"
                        ShowCancelButton="False" />
                </Columns>
            </AjaxData:GridView>
            <tr>
              
                    <AjaxData:Pager ID="Pager1"  Width="100px" runat="server" CssClass="PagerRowStyle" CurrentPageStyle-CssClass="PagerCurrentPage"
                        OtherPageStyle-CssClass="PagerOtherPage" PageChangedEvent="pageChanged">
                    </AjaxData:Pager>
              
            </tr>
            <div id="nested" style="left: 20px; display:none ">
                <tr>
                    <td colspan="100%" style="height: 180px; width: 927px;">
                        <AjaxData:GridView ID="GridView2" Width="450px" Font-Size="X-Small" Font-Names="Verdana"
                            runat="server" SortColumn="OrderID" ShowFooter="true" CellSpacing="0" CellPadding="3"
                            SortOrderAscendingImageUrl="~/Images/up.gif" SortOrderDescendingImageUrl="~/Images/dn.gif"
                            SortCommandEvent="onSortCommand_2" RowDataBoundEvent="onRowDataBound_2" RowCreatedEvent="onRowCreated_2"
                            EditCommandEvent="onEditCommand_2" DeleteCommandEvent="onDeleteCommand_2" UpdateCommandEvent="onUpdateCommand_2"
                            CancelCommandEvent="onCancelCommand_2" Height="112px">
                            <RowStyle BackColor="Gainsboro" />
                            <AlternatingRowStyle BackColor="White" />
                            <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                            <FooterStyle BackColor="White" />
                            <Columns>
                                <AjaxData:GridViewTemplateColumn ColumnID="1">
                                    <ItemTemplate>
                                        <input type="checkbox" id="chekId2" visible="true" />
                                    </ItemTemplate>
                                </AjaxData:GridViewTemplateColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="OrderID" DataField="OrderID" SortField="OrderID"
                                    ColumnID="1">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="Freight" DataField="Freight" SortField="Freight"
                                    ColumnID="2">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipName" DataField="ShipName" SortField="ShipName"
                                    ColumnID="3">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipAddress" DataField="ShipAddress" SortField="ShipAddress"
                                    ColumnID="4">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewCommandColumn HeaderText="Edit" ShowEditButton="True" AllowDragAndDrop="False"
                                    ColumnID="5" ShowCancelButton="False">
                                </AjaxData:GridViewCommandColumn>
                            </Columns>
                        </AjaxData:GridView>
                    </td>
                </tr>
                <tr>
                    <td>
                        <AjaxData:Pager ID="Pager2" runat="server" PageSize="5" CssClass="PagerRowStyle"
                            CurrentPageStyle-CssClass="PagerCurrentPage" Height="20px" OtherPageStyle-CssClass="PagerOtherPage"
                            PageChangedEvent="pageChanged_2" Width="449px">
                            <CurrentPageStyle CssClass="PagerCurrentPage" />
                            <OtherPageStyle CssClass="PagerOtherPage" />
                        </AjaxData:Pager>
                    </td>
                </tr>
            </div>
        </form>
    </body>
    </html>

  • 12-26-2008 10:19 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxGrid.aspx.cs" Inherits="AjaxGrid" %>

    <!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>Untitled Page</title>
        <link href="StyleSheet.css" rel="stylesheet" type="text/css" />

        <script runat="server">
        </script>

        <script language="javascript" type="text/javascript">
        debugger;
             var _gridView;
             var _pager;
             var _gridView2;
            var _pager2;
            var _childPage=0;
             var _row;
             var _childrows=null;
             var _sObj=null;
             var _sImgId=null
             var _rowCount=null; 
             var _nestedDiv=null;
             var _nestedtable=null;
             var ds1=new Array();
            

       
     //***************GirdView1 Events *****************//
                function pageLoad(sender, e)
                {
                    debugger;
                    _gridView = $find('<%= GridView1.ClientID %>');
                    _pager = $find('<%= Pager1.ClientID %>');
                    _gridView2=$find('<%=GridView2.ClientID %>');
                    _pager2=$find('<%= Pager2.ClientID %>');
                    _nestedDiv=$get("nested");
                    _nestedtable =_nestedDiv.getElementsByTagName('table')[0];
                    loadCustomers();
                }
                function loadCustomers()
                {
                    debugger;
                   
                    var sortColumn = GridView1.get_sortColumn();
                    var sortOrder = (GridView1.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                    var startIndex = (Pager1.get_pageIndex() * Pager1.get_pageSize());
                    DataService.GetCustomerList(startIndex, Pager1.get_pageSize(), sortColumn, sortOrder, onLoadSuccess);
                   
                   
    //                 writeMessage('');
    //                 onLoadSuccess(ds1.value)
                }
                function onLoadSuccess(result)
                {
                    debugger;
                    _rowCount=result.Rows.length;
                    Pager1.set_recordCount(result.Total);
                    GridView1.set_dataSource(result.Rows);
                    GridView1.dataBind();
                   
                     var divChild=null;
                     var tr1;
                     var td1;
                      var tableRef;
                      var newRow;
                      var td2;
                       var td3;
                        var newCell;
                    for(var i=0;i<=GridView1._rows.length;i++)
                    {
                        _sObj=GridView1._dataKeysIdea;
                        //var nestedDiv;
                         if(_sObj)
                         {
                             //   nestedDiv=$get("nested"+_sObj);
                            //else
                               // nestedDiv=$get("nested");
                                 divChild= document.createElement('div');
                                 divChild.id='nested'+_sObj;
                                 divChild.style.display="none";
                                  tr1=document.createElement('tr');
                                  td1=document.createElement('td');
                                  td1.id='td_'+_sObj;
                                  td1.colspan="100%";
                               
                                 //td1.appendChild(_nestedtable);
                                 tr1.appendChild(td1);
                                 divChild.appendChild(tr1);
                                
                             tableRef = $get('<%= GridView1.ClientID %>');
                            //insert a new row
                            //var row = evt.target.parentNode.parentNode;
                           //  var row = evt.target.parentNode;
                             //newRow = tableRef.insertRow(i+2);
                             newRow = document.createElement('tr');
                             newRow.id='tr_'+_sObj;
                            // Insert a cell in the row at index 0
                              td2= document.createElement('td');
                              td3= document.createElement('td');
                             newRow.appendChild(td2);
                             newRow.appendChild(td3);
                            // newCell = newRow.insertCell(2);
                            newCell=document.createElement('td');
                            newCell.colSpan = GridView1.get_columns().length;
                            newCell.appendChild(divChild);
                           GridView1._rowsIdea._container.appendChild(newCell);
                       }
                           // divChild.appendChild(nestedDiv.innerHTML);
                          // _sObj=id;
                          // var create_row=row._container.appendChild(divChild);
                    }
                }
                function onSortCommand(sender, e)
                {
                    GridView1.set_sortColumn(e.get_sortColumn())
                    GridView1.set_sortOrder(e.get_sortOrder());
                    Pager1.set_pageIndex(0); // need to reset the page index as sorting is changed
                    loadCustomers();
                }
               function onEditCommand(sender,e)
               {
               }
               function onUpdateCommand(sender,e)
               {
               }
               function onDeleteCommand(sender,e)
               {
               }
               function LoadOrders(CustomerId)
               {
       
                   debugger;
                  
                        var sortColumn = GridView2.get_sortColumn();
                        var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                        var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                        DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,CustomerId, loadchildGridView);
               }
                   
               function loadchildGridView(result)
               {
                    debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                   
                        
                   
               }
               function BindChildGrid(id,create_row)
               {
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,id, loadNestedGridView);
                        
                        
                       
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        //insert a new row
                        var row =create_row;
                       //  var row = evt.target.parentNode;
                        var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                         var td1= document.createElement('td');
                         var td2= document.createElement('td');
                         newRow.appendChild(td1);
                         newRow.appendChild(td2);
                        var newCell = newRow.insertCell(2);
                        newCell.colSpan = GridView1.get_columns().length;
                       var nestedDiv=$get("nested");
                        newCell.appendChild($get("nested"));
               }
                function showNested(evt, context)
                {
                 debugger;
                         _sObj=context[0].id;
                        _sImgId=context[1].imgId;
                        _row=context[2].rowid;
                           var sortColumn = GridView2.get_sortColumn();
                            var sortOrder = (GridView2.get_sortOrder() == AjaxDataControls.GridViewSortOrder.Descending) ? 'DESC' : 'ASC';
                            var startIndex = (Pager2.get_pageIndex() * Pager2.get_pageSize());
                            DataService.GetOrdersList(startIndex, Pager2.get_pageSize(), sortColumn, sortOrder,context[0].id, loadNestedGridView);
                           
                           
                          AjaxGrid.GetCustomerList1('', '', '', ''); 
                        // onLoadSuccess(ds1.value);
                        var tableRef = $get('<%= GridView1.ClientID %>');
                        var nestedTableRef=$get('<%=GridView2.ClientID %>');
                        //insert a new row
                       // var row = evt.target.parentNode.parentNode;
                       //  var row = evt.target.parentNode;
                     //   var newRow = tableRef.insertRow(row.rowIndex+1);
                        // Insert a cell in the row at index 0
                        // var td1= document.createElement('td');
                      //   var td2= document.createElement('td');
                     //    newRow.appendChild(td1);
                     //    newRow.appendChild(td2);
                     //   var newCell = newRow.insertCell(2);
                     //   newCell.colSpan = GridView1.get_columns().length;
                       
                        var child=tableRef.document.getElementById('td_'+_sObj);
                        child.appendChild(nestedTableRef);
                       
                         var img = _gridView._element.document.getElementById(_sImgId);
                   if (_gridView._element.document.getElementById('nested'+_sObj).style.display == "none")
                    {
                           _gridView._element.document.getElementById('nested'+_sObj).style.display = "block";
                        if (_row == 'alt')
                        {
                            img.src = "Images/minus.gif";
                        }
                        else
                        {
                            img.src = "Images/minus.gif";
                        }
                        img.alt = "Close to view other Customers";
                    }
                    else
                    {
                          _gridView._element.document.getElementById('nested').style.display = "none";
                            if (_row == 'alt')
                            {
                                img.src = "Images/plus.gif";
                            }
                            else
                            {
                                img.src = "Images/plus.gif";
                            }
                            img.alt = "Expand to show Orders";
                    }
                        // var nestedDiv= GridView1._element.parentNode.parentNode.parentNode.document.getElementById('nested')
                    //    var nestedDiv=$get('nested'+_sObj);
                     //   newCell.appendChild(nestedDiv);
             
                }

                 function loadNestedGridView(result)
                 {
                 debugger;
                    Pager2.set_recordCount(result.Total);            
                    GridView2.set_dataSource(result.Rows);
                    GridView2.dataBind();
                  
                 }
               function onRowCreated(sender,e)
               {
               }
             function onRowDataBound(sender, e)
             {
             debugger;
            
                var row = e.get_row(); //.get_rowIndex()
                 if(row.get_isDataRowType())
                 {
                     
                        var rIndex = row.get_rowIndex();
                        var id = GridView1.get_dataKeys()[rIndex];
                        var context = new Array();
                         context[0] = { id:  id};

                        //create function callback so we can pass the parent id           
                         var callback = Function.createCallback(showNested, context);
                        //  alert(rIndex);
                         var imgrow=row.findControl('imgdiv');
                            if (imgrow)
                             {
                                $addHandler(imgrow, "click", callback);
                                context[1]={imgId:imgrow.id};
                                context[2]={rowid:row};
                            }
                        var create_row= row._container;
                         //BindChildGrid(id,create_row);
                    }   
                //if(imgrow)
                // imgrow.onclick = function () {expandcollapse(row,imgrow.id)};
             }

                 function pageChanged(sender, e)
                {
                    debugger;
                    Pager1.set_pageIndex(e.get_newPageIndex());
                    loadCustomers();
                }
               
                //***************GirdView1 Events *****************//
               //***************GirdView2 Events *****************//
               function onEditCommand_2(sender,e)
               {
               }
               function onCancelCommand_2(sender,e)
               {
               }
               function onUpdateCommand_2(sender,e)
               {
               }
               function onDeleteCommand_2(sender,e)
               {
               }
               function onRowCommand_2(sender, e)
               {
                //debugger;
               }
               function onRowDataBound_2(sender, e)
               {
               }
               function onRowCreated_2(sender, e)
               {

               }
               function onSortCommand_2(sender, e)
               {
                debugger;
                    GridView2.set_sortColumn(e.get_sortColumn())
                    GridView2.set_sortOrder(e.get_sortOrder());
                    Pager2.set_pageIndex(0); // need to reset the page index as sorting is changed
                    LoadOrders(_sObj);
               }
            function pageChanged_2(sender, e)
            {
                debugger;
                Pager2.set_pageIndex(e.get_newPageIndex());
                LoadOrders(_sObj);
            }
               //***************GirdView2 Events *****************//
            function onColumnsLoaded(sender, e)
            {
               loadCustomers();
            }
            function onColumnDragStart(sender, e)
            {
                var column = e.get_column();
               // writeMessage(String.format('{0} Column Drag Started<br/>', column.get_headerText()));
            }

            function onColumnDropped(sender, e)
            {
                var column = e.get_column();
                //writeMessage(String.format('{0} Column Dropped in index {1} from index {2}<br/>', column.get_headerText(), e.get_newIndex(), e.get_oldIndex()));
                GridView1.saveColumnsToProfile('DndColumns');
            }

            function writeMessage(message)
            {
                debugger;
                $get('divEvents').innerHTML += message;
            }
           

        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="TheScriptManager" runat="server" EnablePageMethods="false"
                EnablePartialRendering="false">
                <Services>
                    <asp:ServiceReference Path="~/DataService.asmx" />
                </Services>
                <Scripts>
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewScript.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewDragDrop.js" />
                    <asp:ScriptReference Path="~/PreviewScripts/PreviewGlitz.js" />
                </Scripts>
            </asp:ScriptManager>
            <AjaxData:GridView ID="GridView1" runat="server" CssClass="DataWebControlStyle" CellSpacing="0"
                CellPadding="3" SortColumn="ContactName" DataKeyName="ID" SortOrderAscendingImageUrl="~/Images/up.gif"
                SortOrderDescendingImageUrl="~/Images/dn.gif" RowCreatedEvent="onRowCreated"
                ColumnDragStartEvent="onColumnDragStart"
                ColumnsLoadedFromProfileEvent="onColumnsLoaded"
                ColumnDroppedEvent="onColumnDropped"
                SortCommandEvent="onSortCommand" RowDataBoundEvent="onRowDataBound" Font-Names="Verdana"
                Font-Size="X-Small" Width="453px">
                <RowStyle BackColor="Gainsboro" />
                <AlternatingRowStyle BackColor="White" />
                <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                <FooterStyle BackColor="White" />
                <Columns>
                    <AjaxData:GridViewTemplateColumn ColumnID="1">
                        <ItemTemplate>
                            <img id="imgdiv" alt="Click to show/hide Orders for Customer" width="9px" border="0"
                                src="Images/plus.gif" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="2">
                        <ItemTemplate>
                            <input type="checkbox" id="chekId" visible="true" />
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ID" DataField="ID" SortField="CustomerID" ColumnID="3">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="CustomerName" DataField="ContactName" SortField="ContactName"
                        ColumnID="4">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="ContactTitle" DataField="ContactTitle"
                        SortField="ContactTitle" ColumnID="5">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Address" DataField="Address" SortField="Address"
                        ColumnID="6">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewBoundColumn HeaderText="Country" DataField="Country" SortField="Country"
                        ColumnID="7">
                        <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                        <ItemStyle HorizontalAlign="Left" />
                    </AjaxData:GridViewBoundColumn>
                    <AjaxData:GridViewTemplateColumn ColumnID="8">
                        <ItemTemplate>
                            <span></span>
                        </ItemTemplate>
                    </AjaxData:GridViewTemplateColumn>
                    <AjaxData:GridViewCommandColumn ShowEditButton="True" AllowDragAndDrop="False" ColumnID="9"
                        ShowCancelButton="False" />
                </Columns>
            </AjaxData:GridView>
            <tr>
              
                    <AjaxData:Pager ID="Pager1"  Width="100px" runat="server" CssClass="PagerRowStyle" CurrentPageStyle-CssClass="PagerCurrentPage"
                        OtherPageStyle-CssClass="PagerOtherPage" PageChangedEvent="pageChanged">
                    </AjaxData:Pager>
              
            </tr>
            <div id="nested" style="left: 20px; display:none ">
                <tr>
                    <td colspan="100%" style="height: 180px; width: 927px;">
                        <AjaxData:GridView ID="GridView2" Width="450px" Font-Size="X-Small" Font-Names="Verdana"
                            runat="server" SortColumn="OrderID" ShowFooter="true" CellSpacing="0" CellPadding="3"
                            SortOrderAscendingImageUrl="~/Images/up.gif" SortOrderDescendingImageUrl="~/Images/dn.gif"
                            SortCommandEvent="onSortCommand_2" RowDataBoundEvent="onRowDataBound_2" RowCreatedEvent="onRowCreated_2"
                            EditCommandEvent="onEditCommand_2" DeleteCommandEvent="onDeleteCommand_2" UpdateCommandEvent="onUpdateCommand_2"
                            CancelCommandEvent="onCancelCommand_2" Height="112px">
                            <RowStyle BackColor="Gainsboro" />
                            <AlternatingRowStyle BackColor="White" />
                            <HeaderStyle BackColor="ActiveBorder" ForeColor="White" />
                            <FooterStyle BackColor="White" />
                            <Columns>
                                <AjaxData:GridViewTemplateColumn ColumnID="1">
                                    <ItemTemplate>
                                        <input type="checkbox" id="chekId2" visible="true" />
                                    </ItemTemplate>
                                </AjaxData:GridViewTemplateColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="OrderID" DataField="OrderID" SortField="OrderID"
                                    ColumnID="1">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="Freight" DataField="Freight" SortField="Freight"
                                    ColumnID="2">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipName" DataField="ShipName" SortField="ShipName"
                                    ColumnID="3">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewBoundColumn HeaderText="ShipAddress" DataField="ShipAddress" SortField="ShipAddress"
                                    ColumnID="4">
                                    <HeaderStyle HorizontalAlign="Left" Wrap="False" />
                                    <ItemStyle HorizontalAlign="Left" />
                                </AjaxData:GridViewBoundColumn>
                                <AjaxData:GridViewCommandColumn HeaderText="Edit" ShowEditButton="True" AllowDragAndDrop="False"
                                    ColumnID="5" ShowCancelButton="False">
                                </AjaxData:GridViewCommandColumn>
                            </Columns>
                        </AjaxData:GridView>
                    </td>
                </tr>
                <tr>
                    <td>
                        <AjaxData:Pager ID="Pager2" runat="server" PageSize="5" CssClass="PagerRowStyle"
                            CurrentPageStyle-CssClass="PagerCurrentPage" Height="20px" OtherPageStyle-CssClass="PagerOtherPage"
                            PageChangedEvent="pageChanged_2" Width="449px">
                            <CurrentPageStyle CssClass="PagerCurrentPage" />
                            <OtherPageStyle CssClass="PagerOtherPage" />
                        </AjaxData:Pager>
                    </td>
                </tr>
            </div>
        </form>
    </body>
    </html>

    Filed under:
  • 12-28-2008 1:09 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

     

    I posted same code to so many times...  Please look at  12-26-2008 3:50 AM....

     

    Thanks

    ramesh

     

    Filed under:
  • 12-29-2008 9:14 AM In reply to

    • xxXd
    • Top 10 Contributor
    • Joined on 12-18-2006
    • Slacker
    • Points 19,057

    Re: Nested AgaxGrid Is it possible using ADC controls

    I must say I am overwhelmed by the sprawling code. Also I found some redundant / unused code that propably be commented out or deleted for clarity.

    I did my test again, using a much more simplied version and could not find no error.

    Which line did you get the error? Do you firefox to debug? It is normally very helpful.

    I am sorry I have to run again, because of the nature of this holiday season. I will try to respond to you asap.

     

  • 12-30-2008 12:18 AM In reply to

    Re: Nested AgaxGrid Is it possible using ADC controls

    Hi,

        Actully I expected..Once clicked at First cell (plus image) gridview2 needs to expand..at particular row..

    But here If iam cliked first row  (first cell-plus image) its childgridview expanding upto now fine...Then

    if iam clicked second row..(first cell-plus image).second childgridview expanding...first row childgridview collapsing..

    I want to see both ChildGridviews represent (Eg:first row and second row)

    once clicked..minus image childgridview needs collapse until selected rows needs to show  childgridview...

     

    That is the problem here ..Iam trying to get result like..

    Whtever u send me the code  Div nested  showing properly.

     

    Suppose...Parent GRidview having 10 rows...can we we create Div nested1 to Div nested10 at runtime?

    what Iam trying means..every parent row I appended child gridview (divnested1 InnerHTML and I set  the style ="display:none" for div nested )

    Like I appended Divnested1 to Divnested10 for every ParentGrid Row...

    if Iiam clicked  parent row1  the properties for childgrid (divnested1 I set  the style ="display:block")

    like we can try?

     

    Thanks

    Ramesh N

     

     

     

  • 12-30-2008 8:19 AM In reply to

    • xxXd
    • Top 10 Contributor
    • Joined on 12-18-2006
    • Slacker
    • Points 19,057

    Re: Nested AgaxGrid Is it possible using ADC controls

     I have never tried to create ADC gridview dynamically. I doubt if it is even possible. Creating dynamic divs should be no problem. I will do a simple test later today and let you know.

  • 12-30-2008 9:43 AM In reply to

    • xxXd
    • Top 10 Contributor
    • Joined on 12-18-2006
    • Slacker
    • Points 19,057

    Re: Nested AgaxGrid Is it possible using ADC controls

    No. I do not think it is possible to create ADC gridviews from client side. It is absolutely ok though to create a number of gridviews at design time and hide them.   

Page 2 of 3 (36 items) < Previous 1 2 3 Next >