Wednesday, 11 December 2013

gridview nested gridview in asp net

gridview nested gridview in asp net :


-- CSS 
<style type="text/css">

      .Grid td
        {
            background-color: #eee;
            color: black;
            font-size: 10pt;
            line-height:200%
        }
        .Grid th
        {
            background-color: #6f6e6e;
            color: White;
            font-size: 10pt;
            line-height:200%
        }
        .ChildGrid td
        {
            background-color: white  !important;
            color: black;
            font-size: 10pt;
            line-height:200%
        }
        .ChildGrid th
        {
            background-color: #890000 !important;
            color: White;
            font-size: 10pt;
            line-height:200%
        }
    </style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
    $("[src*=plus]").live("click", function () {
        $(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
        $(this).attr("src", "../image/minus.png");
    });
    $("[src*=minus]").live("click", function () {
        $(this).attr("src", "../image/plus.png");
        $(this).closest("tr").next().remove();
    });
</script>

aspx:

<div align="center" style="border: 1px solid silver">
   <asp:GridView ID="grdPro" runat="server" AutoGenerateColumns="false"                 CssClass="Grid" DataKeyNames="product_id"              
              OnRowDataBound="grdPro_RowDataBound" 
              AllowPaging="True" 
              OnPageIndexChanging="grdPro_PageIndexChanging">
     <Columns>
       <asp:TemplateField>
         <ItemTemplate>
            <img alt = "" style="cursor: pointer" src="../image/plus.png" />
--Panel Style Display None

               <asp:Panel ID="pnlOrders" runat="server" Style="display: none">

--Nested Grid

       <asp:GridView ID="grdSubPro" runat="server"             
                   AutoGenerateColumns="false" CssClass = "ChildGrid">
         <Columns>
               <asp:BoundField ItemStyle-Width="150px" 
                           DataField="color" HeaderText="color" />
               <asp:TemplateField ItemStyle-Width="150px"                  
                                     HeaderText="ColorCode">
               <ItemTemplate>
                 <asp:Label ID="lblColorCode" Width="120px"       
                     Text='<%#Eval("color") %>' ForeColor="White"              
                     BackColor='<%#System.Drawing.ColorTranslator.
                     FromHtml(Eval("color").ToString()) %>' runat="server">
              </asp:Label>
           </ItemTemplate>
           </asp:TemplateField>
                <asp:BoundField ItemStyle-Width="150px" 
                           DataField="size"  HeaderText="size" />
           </Columns>
          </asp:GridView>
           </asp:Panel>
          </ItemTemplate>
          </asp:TemplateField>

     <asp:BoundField ItemStyle-Width="150px" 
                  DataField="Productname" HeaderText="Pro-Name" />
     <asp:TemplateField HeaderText="Pro-Image">
           <ItemTemplate>
               <asp:Image ID="imgProImage" runat="server" Width="150px"                        Height="100px" 
                 ImageUrl='<%#string.Format("~/{0}",Eval("Image")) %>' />
                </ItemTemplate>
            </asp:TemplateField>
     <asp:BoundField ItemStyle-Width="150px" 
                   DataField="Productdes" HeaderText="Pro-Description" />
     <asp:BoundField ItemStyle-Width="150px"
                   DataField="Price" HeaderText="Price" />
     <asp:BoundField ItemStyle-Width="150px"
                    DataField="Brandname" HeaderText="Brandname"/>
   </Columns>
    </asp:GridView>
        </div>

aspx:cs :

   protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                grdProductView();
            }
        }
        public void grdProductView()
        {
            Select = "Select * From Product_Master";
            da = new SqlDataAdapter(Select, Conn);
            da.Fill(ds);
            grdPro.DataSource = ds;
            grdPro.DataBind();
            
        }

        protected void grdPro_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string ProID = grdPro.DataKeys[e.Row.RowIndex].Value.ToString();
                GridView gvSub = e.Row.FindControl("grdSubPro") as GridView;
                Label lblColorcode = e.Row.FindControl("lblColorCode") as Label;

                string select1;
                DataSet ds1 = new DataSet();
                select1 = "Select * From test1 where product_id="+ProID+"";
                da = new SqlDataAdapter(select1, Conn);
                da.Fill(ds1);
                gvSub.DataSource = ds1;
                gvSub.DataBind();
            }
        }

        protected void grdPro_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grdPro.PageIndex = e.NewPageIndex;
            grdProductView();
        }








No comments:

Post a Comment