ASP.NET Web Forms / VB.NET app, how do I get this code to make the GridView drill down work?

I am developing a ASP.NET Web Forms / VB.NET app.  I am new to the ASP.NET portion of coding (I prefer to do as much of the coding in this project in VB.Net as possible) .  I am wanting to use a GridView with a column to click for a drill down.  I found some code online that seems like it should work with some tweaking.  I have it partially working.  It works for the main GridView, but not the drill down.

This is the link of the demo where I got the sample code showing how it works:  "https://www.aspsnippets.com/demos/308/"

Here is what I am getting on my webpage:
WebPage.JPG
Here is the code that calls the main GridView:
       
       ' Get main table data and bind to GridView control
        grdDelvImp.DataSource = GetData("SELECT * FROM " & gtblship_delay & "WHERE so_id = '" & strSO_IDIn & "'")
        grdDelvImp.DataBind()

Open in new window


GetData function:
    
Public Function GetData(query As String) As DataTable

        ' Open Connection To The Database
        If con Is Nothing Then
            open_db_connection()
        ElseIf con.State = 0 Then
            open_db_connection()
        End If

        Using con
            Using cmd As New SqlCommand()
                cmd.CommandText = query
                Using sda As New SqlDataAdapter()
                    cmd.Connection = con
                    sda.SelectCommand = cmd
                    Using ds As New DataSet()
                        Dim dt As New DataTable()
                        sda.Fill(dt)
                        Return dt
                    End Using
                End Using
            End Using
        End Using

        ' Close Connection
        If con.State = 1 Then
            close_db_connection()
        End If

    End Function

Open in new window


This is the code that gets the details for the drill down.  When I step thru the code I can see it is getting the correct values for delay_id (even though I have not clicked on "+ expand" - it just does it).  :
    Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs)

        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim delay_id As String = grdDelvImp.DataKeys(e.Row.RowIndex).Value.ToString()
            Dim grdReasons As GridView = TryCast(e.Row.FindControl("grdReasons"), GridView)
            grdReasons.DataSource = GetData(String.Format("SELECT * FROM " & gtblship_delay_reason & " WHERE delay_id = '{0}'", delay_id))
            grdReasons.DataBind()
        End If

    End Sub

Open in new window


This is the ASP.NET code for this portion:
            <asp:Panel ID="panDelvImpInd" runat="server" style="top: 219px; left: 8px; position: absolute; height: 159px; width: 1131px">
            
            <asp:GridView ID="grdDelvImp" runat="server" AutoGenerateColumns="False" CssClass="Grid" style="top: 7px; left: 6px; position: absolute; height: 137px; width: 446px; margin-right: 0px;"
                DataKeyNames="delay_id" OnRowDataBound="OnRowDataBound" Font-Names="Arial" Font-Size="Small" >
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <img alt = "" style="cursor: pointer; height: 22px; width: 24px;" src="images/plus.png" />
                            <asp:Panel ID="pnlReasons" runat="server" Style="display: none">
                                <asp:GridView ID="grdReasons" runat="server" AutoGenerateColumns="false" CssClass = "ChildGrid" Font-Names="Arial" Font-Size="Small">
                                    <Columns>
                                        <asp:BoundField ItemStyle-Width="150px" DataField="reason_nm" HeaderText="Reason" />
                                        <asp:BoundField ItemStyle-Width="150px" DataField="reason_desc" HeaderText="Description" />
                                    </Columns>
                                </asp:GridView>
                            </asp:Panel>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField ItemStyle-Width="150px" DataField="status_nm" HeaderText="Status" >
                    <ItemStyle Width="150px" />
                    </asp:BoundField>
                    <asp:BoundField ItemStyle-Width="150px" DataField="status_desc" HeaderText="Description" >
                    <ItemStyle Width="150px" />
                    </asp:BoundField>
                </Columns>
            </asp:GridView>
            
            </asp:Panel>

Open in new window


When I click on the "+", nothing happens - no expanding, no detail data display.   It just looks like the webpage screen shot at the top of post.

 In full disclosure, the sample code included this script (see my comment below it):
<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", "images/minus.png");
    });
    $("[src*=minus]").live("click", function () {
        $(this).attr("src", "images/plus.png");
        $(this).closest("tr").next().remove();
    });
</script>

Open in new window


I have no idea how to implement that script into my project, so I'd rather see if there is another way to trigger the "+ expand".

My questions:
- Instead of the column with the "+" graphic (and script use), can there be a regular button or link or something in the first column that can trigger the expand without the need for the script and use VB code instead?   (If not, then how do I implement this script in my project?)

- In the webpage, see how huge/wide the column is for the "+".  How can I shrink down the width so it is the size of the "+" or a button/link if I can add that instead?  (How do I adjust the width of the other columns?)

I hope this is not to confusing.  Thanks for any help you can provide.
sqdperuAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Kyle AbrahamsSenior .Net DeveloperCommented:
IMO this is the wrong way to do this.

Essentially you're getting the grid for both the parent and child rows at the same time.  If you have a huge number of parent rows, the pageload will suffer.

What you want to do is lazy load the child grid (EG: Load on demand when the button is clicked).

For that:
  http://www.dotnettwitter.com/2011/07/hierarchical-gridview-in-aspnet-with.html
1

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Paul JacksonSoftware EngineerCommented:
The script can be put between the <head></head> tags on your aspx page and is crucial to the gridview expanding. However as Kyle says this is not efficient code as it loads all the child records at the same time so is not very scalable for large datasets. It will however make expanding the drilldown faster.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
        <style type="text/css">
        body
        {
            font-family: Arial;
            font-size: 10pt;
        }
        .Grid td
        {
            background-color: #A1DCF2;
            color: black;
            font-size: 10pt;
            line-height:200%
        }
        .Grid th
        {
            background-color: #3AC0F2;
            color: White;
            font-size: 10pt;
            line-height:200%
        }
        .ChildGrid td
        {
            background-color: #eee !important;
            color: black;
            font-size: 10pt;
            line-height:200%
        }
        .ChildGrid th
        {
            background-color: #6C6C6C !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", "images/minus.png");
        });
        $("[src*=minus]").live("click", function () {
            $(this).attr("src", "images/plus.png");
            $(this).closest("tr").next().remove();
        });
    </script>

</head>
<body>

Open in new window

0
sqdperuAuthor Commented:
Thanks guys.  I am using a link from the link provided by Kyle as my sample, "http://www.dotnettwitter.com/2011/06/hierarchical-gridview-in-aspnet.html".

It is working the same as my original post - shows main grid, but refuses to expand.  Hopefully you can tell me what I am doing wrong.

See my screen shot and questions below.   Thanks.

Here is what it looks like in the designer:
Notice, I have the GridView setting on a Panel, but it does not respect the boundries of my Panel.   How do I make it stay in the Panel boundries?
NewDesigner.png
Here is the web output.  Outside of panel and  overlaying other controls.  Will not expand gridview when clicked:
NewResults.png
Stored Procedure that is called to retreive the data for grids:
ALTER PROCEDURE [dbo].[get_ship_delay_reason_gls_fac]
	@so_id varchar(50)=''
AS
BEGIN	  
   SELECT d.plant_id, d.so_id, d.delay_id, d.[status], d.status_nm, d.status_desc, d.comment, d.rec_by, d.rec_dt, d.rec_tm
   FROM dbo.ship_delay d
   WHERE d.so_id = @so_id 
   SELECT r.delay_id, r.reason_nm, r.reason_desc, r.reason_code 
   FROM  dbo.ship_delay_reason r 
END

Open in new window


Results of StoredProcedure for test order:
Data.png
ASP.NET code:
            <asp:Panel ID="panDelvImpInd" runat="server" style="top: 219px; left: 8px; position: absolute; height: 159px; width: 1131px">
            
        <asp:GridView id="GridViewHierachical" runat="server" AutoGenerateColumns="False" CellPadding="0" CellSpacing="2" GridLines="Vertical" DataKeyNames="delay_id" AllowPaging="true"
            BackColor="White" BorderWidth="1px" BorderStyle="Solid" BorderColor="Black" PageSize="10" style="top: 6px; left: 6px; position: absolute; height: 253px; width: 98%; border-right-style: none; border-right-color: inherit; border-right-width: medium;"
            OnPageIndexChanging="GridViewHierachical_PageIndexChanging"
            OnRowDataBound="GridViewHierachical_RowDataBound">
            <Columns>
                <asp:TemplateField HeaderText="Delay ID">
                    <ItemStyle Width="10%" />
                    <ItemTemplate>
                        <a href="javascript:ExpandCollapse('div<%# Eval("delay_id")%>');" style="padding-left:2px;">
                            <img id="imgdiv<%# Eval("delay_id")%>" alt=""  width="9px" border="0" src="images/plus.gif"/>
                        </a>                    
                        <asp:Label ID="lblDelayID" Text='<%# Eval("delay_id")%>' Visible="true" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="status_nm" HeaderText="Status">
                    <ItemStyle Width="10%" />
                </asp:BoundField>
                <asp:BoundField DataField="status_desc" HeaderText="Description">
                    <ItemStyle Width="20%" />
                </asp:BoundField>
                <asp:BoundField DataField="comment" HeaderText="Comments">
                    <ItemStyle Width="20%" />
                </asp:BoundField>
                <asp:BoundField DataField="rec_dt" HeaderText="Record Dt"  DataFormatString="{0:MMMM d, yyyy}">
                    <ItemStyle Width="20%" />
                </asp:BoundField>
                <asp:BoundField DataField="rec_by" HeaderText="Record By">
                    <ItemStyle Width="15%" />
                </asp:BoundField>
                <asp:TemplateField>
                    <HeaderStyle CssClass="InvisibleCol" />
                    <ItemStyle CssClass="InvisibleCol" />                                                        
                    <ItemTemplate>
                    </td></tr>
                        <tr>
                            <td colspan="6">
                                <div id="div<%# Eval("delay_id")%>" style="display:none;position:relative;left:10px;overflow:auto;width:99%;">
                                    <asp:GridView id="GridViewDetails" runat="server" 
                                        AllowSorting="false" AutoGenerateColumns="False" Width="100%"
                                        CellSpacing="1" CellPadding="0" GridLines="Both" DataKeyNames="delay_id"
                                        BackColor="White" BorderWidth="2px" BorderStyle="Ridge"
                                        BorderColor="White" AllowPaging="false" ForeColor="#000066">
                                        <Columns>
                                            <asp:BoundField DataField="delay_id" HeaderText="Delay ID">
                                                <ItemStyle Width="10%" />
                                            </asp:BoundField>
                                            <asp:BoundField DataField="reason_nm" HeaderText="Reason">
                                                <ItemStyle Width="30%" />
                                            </asp:BoundField>
                                            <asp:BoundField DataField="reason_desc" HeaderText="Description">
                                                <ItemStyle Width="30%" />
                                            </asp:BoundField>
                                        </Columns>
                                        <RowStyle ForeColor="#000066" Height="20px"></RowStyle>
                                        <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White"></SelectedRowStyle>
                                        <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left"></PagerStyle>
                                        <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White"></HeaderStyle>
                                        <AlternatingRowStyle BorderStyle="Solid" BorderWidth="0px"></AlternatingRowStyle>
                                    </asp:GridView>
                                </div>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#CCCCCC" ForeColor="Black"></FooterStyle>
            <RowStyle BackColor="#EEEEEE" ForeColor="Black" Height="22px"></RowStyle>
            <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" Height="22px"></HeaderStyle>
            <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White"></SelectedRowStyle>
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Right"></PagerStyle>
            <AlternatingRowStyle BorderStyle="Solid" BorderWidth="0px" BackColor="#DCDCDC"></AlternatingRowStyle>
        </asp:GridView>
            
            </asp:Panel>

Open in new window


NOTE: the code above gets a warning, "Validation (XHTML5): The values permitted for this attribute do not include '9px'."      
It also has the information message, "Validation (XHTML5): Attribute 'border' is considered outdated. A newer construct is recommended."
How do I correct them to make it compliant?
                        <a href="javascript:ExpandCollapse('div<%# Eval("delay_id")%>');" style="padding-left:2px;">
                            <img id="imgdiv<%# Eval("delay_id")%>" alt=""  width="9px" border="0" src="images/plus.gif"/>
                        </a>      

Open in new window


Here is the VB.Net code portion.   I "Call BindGrid()" to start the process:

Private dsOrderDetails As DataSet = Nothing

    Private Sub BindGrid()

        ' Open Connection To The Database
        If con Is Nothing Then
            open_db_connection()
        ElseIf con.State = 0 Then
            open_db_connection()
        End If

        Using con
            Dim command As New SqlCommand("get_ship_delay_reason_gls_fac", con)
            command.CommandType = CommandType.StoredProcedure

            '> Add your parameters
            '>>> Input params
            command.Parameters.Add("@so_id", SqlDbType.VarChar, 50, ParameterDirection.Input).Value = strSO_ID

            Dim dataAdapter As New SqlDataAdapter(command)
        
            dsOrderDetails = New DataSet()
            dataAdapter.Fill(dsOrderDetails)

            GridViewHierachical.DataSource = dsOrderDetails.Tables(0)
            GridViewHierachical.DataBind()
        End Using

        ' Close Connection
        If con.State = 1 Then
            close_db_connection()
        End If

End Sub
 

Protected Sub GridViewHierachical_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
        GridViewHierachical.PageIndex = e.NewPageIndex
        BindGrid()
End Sub


Protected Sub GridViewHierachical_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)

        If e.Row.RowType = DataControlRowType.DataRow Then
            ' Additional check for the row is not header or footer
            If e.Row.DataItem Is Nothing Then
                Return
            End If

            ' Getting the GridViewDetails child grid
            Dim GridViewDetails As GridView = DirectCast(e.Row.FindControl("GridViewDetails"), GridView)

            ' Getting the Order ID
            Dim lblDelayID As Label = DirectCast(e.Row.FindControl("lblDelayID"), Label)

            ' Filtering the records in the second table records. The second table in the dataset contains list of order details for all orders.
            dsOrderDetails.Tables(1).DefaultView.RowFilter = "delay_id=" + lblDelayID.Text
            ' Normal SQL Where condition only
            GridViewDetails.DataSource = dsOrderDetails.Tables(1).DefaultView
            GridViewDetails.DataBind()
        End If

End Sub

Open in new window


Thanks for any advice you can offer.
0
Learn SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

sqdperuAuthor Commented:
Oops,  Sorry guys, I forgot to add this code into my ASP.NET:
    <title>Hierarchical GridView in ASP.NET</title>
    <script language="javascript" type="text/javascript">
        function ExpandCollapse(obj) {
            var div = document.getElementById(obj);
            var img = document.getElementById('img' + obj);

            if (div) {
                if (div.style.display == "none") {
                    div.style.display = "block";
                    img.src = "images/minus.gif";

                }
                else {
                    div.style.display = "none";
                    img.src = "images/plus.gif";
                }
            }
        }
    </script>
   <style type="text/css">
         .InvisibleCol
        {
        display:none;
        }
    </style>

Open in new window

I added "; overflow:auto" to my Panel style so now the grid stay in my Panel bounds.

So my remaining questions:

- The ASP Code above gives me Warning, "Warning Validation (XHTML5): Attribute 'language' is not a valid attribute of element 'script'." on the  line "<script language="javascript" type="text/javascript">" with "language" underlined as the issue.   What is the correct syntax?

-  Code below (from ASP code in post above this one) gets a warning, "Validation (XHTML5): The values permitted for this attribute do not include '9px'."      
 It also has the information message, "Validation (XHTML5): Attribute 'border' is considered outdated. A newer construct is recommended."
 How do I correct this syntax?
             <a href="javascript:ExpandCollapse('div<%# Eval("delay_id")%>');" style="padding-left:2px;">
                    <img id="imgdiv<%# Eval("delay_id")%>" alt=""  width="9px" border="0" src="images/plus.gif"/>
             </a>      

Open in new window


Looks like this now:
ResultsWorking.png
Thanks
0
sqdperuAuthor Commented:
Ok, I figured out how to get rid of the 3 warnings.

Any Idea how I remove this extra space that gets inserted above and below the child grid when there is one record:
 Space.png
When the one below it expands, it does not have the extra space:
 NoSpace.png
... And when it is opened, it removes the extra space from the top one, go figure:
SpaceAutoRemoves.png
Thanks,
0
Kyle AbrahamsSenior .Net DeveloperCommented:
Any Idea how I remove this extra space that gets inserted above and below the child grid when there is one record:

Glad you were able to get it working.  Can you post the render html (view source) when you have the gap?
0
sqdperuAuthor Commented:
Kyle,

I'm including the Javascript that is at the top too.   It is weird.  It is only expanding with thechild spacing if I DO NOT have the parent row under it expanded.  So expanding the bottom parent row will remover the space from the child above it.  But if I collaspe the bottom parent row, the space goes right back in the child above that relates to parent row above.  Thanks

 
    <!-- Hierarchical GridView in ASP.NET script below -->
    <script type="text/javascript">
        function ExpandCollapse(obj) {
            var div = document.getElementById(obj);
            var img = document.getElementById('img' + obj);

            if (div) {
                if (div.style.display == "none") {
                    div.style.display = "block";
                    img.src = "images/minus.gif";
                }
                else {
                    div.style.display = "none";
                    img.src = "images/plus.gif";
                }
            }
        }
    </script>

    <style type="text/css">
        .Grid {
            top: 7px;
            left: 7px;
            position: absolute;
            height: 147px;
            width: 378px;
        }
        <!-- Hierarchical GridView in ASP.NET code below -->
         .InvisibleCol
        {
        display:none;
        }
    </style>


            <div id="panDelvImpInd" style="top: 219px; left: 8px; position: absolute; height: 159px; width: 1132px; overflow:auto">
	
            
        <div>
		<table cellspacing="2" cellpadding="0" rules="cols" id="GridViewHierachical" style="background-color:White;border-color:Black;border-width:1px;border-style:Solid;top: 4px; left: 2px; position: absolute; height: 253px; width: 98%; border-right-style: none; border-right-color: inherit; border-right-width: medium;">
			<tr style="color:Black;background-color:#9FA0A4;font-weight:bold;height:22px;">
				<th scope="col"> </th><th scope="col">Status</th><th scope="col">Description</th><th scope="col">Comments</th><th scope="col">Record Dt</th><th scope="col">Record By</th><th class="InvisibleCol" scope="col">&nbsp;</th>
			</tr><tr style="color:Black;background-color:#EDEDED;height:22px;">
				<td style="width:1%;">
                        <a href="javascript:ExpandCollapse('div2');" style="padding-left:2px;">
                            <img id="imgdiv2" alt="" style="width:9px; border:0px;" src="images/plus.gif"/>
                        </a>                    
                        <span id="GridViewHierachical_lblDelayID_0">2</span>
                    </td><td style="color:Black;background-color:#FFD100;width:10%;">Potential Delay</td><td style="width:20%;">Risk of Missing Target Ship Date</td><td style="width:20%;">at risk</td><td style="width:15%;">09/06/2018   05:38 PM</td><td style="width:15%;">John Doe</td><td class="InvisibleCol">
                    </td></tr>
                        <tr>
                            <td colspan="6">
                                <div id="div2" style="display:none;position:relative;left:10px;overflow:auto;width:99%;">
                                    <div>
					<table cellspacing="1" cellpadding="0" rules="all" id="GridViewHierachical_GridViewDetails_0" style="color:#000066;background-color:White;border-color:White;border-width:2px;border-style:Ridge;width:100%;">
						<tr style="color:White;background-color:#626469;font-weight:bold;">
							<th scope="col"> </th><th scope="col">Reason</th><th scope="col">Description</th>
						</tr><tr style="color:Black;background-color:#CBCBCB;height:20px;">
							<td style="width:1%;">2</td><td style="width:30%;">Extreme Weather Delay</td><td style="width:30%;">Storm Impacting Operation</td>
						</tr>
					</table>
				</div>
                                </div>
                    </td>
			</tr><tr style="color:Black;background-color:Gainsboro;border-width:0px;border-style:Solid;height:22px;">
				<td style="width:1%;">
                        <a href="javascript:ExpandCollapse('div3');" style="padding-left:2px;">
                            <img id="imgdiv3" alt="" style="width:9px; border:0px;" src="images/plus.gif"/>
                        </a>                    
                        <span id="GridViewHierachical_lblDelayID_1">3</span>
                    </td><td style="color:White;background-color:Red;width:10%;">Delayed</td><td style="width:20%;">Will Miss Target Ship Date</td><td style="width:20%;">New CPD has been issued</td><td style="width:15%;">09/07/2018   08:08 AM</td><td style="width:15%;">John Doe</td><td class="InvisibleCol">
                    </td></tr>
                        <tr>
                            <td colspan="6">
                                <div id="div3" style="display:none;position:relative;left:10px;overflow:auto;width:99%;">
                                    <div>
					<table cellspacing="1" cellpadding="0" rules="all" id="GridViewHierachical_GridViewDetails_1" style="color:#000066;background-color:White;border-color:White;border-width:2px;border-style:Ridge;width:100%;">
						<tr style="color:White;background-color:#626469;font-weight:bold;">
							<th scope="col"> </th><th scope="col">Reason</th><th scope="col">Description</th>
						</tr><tr style="color:Black;background-color:#CBCBCB;height:20px;">
							<td style="width:1%;">3</td><td style="width:30%;">Part Shortage</td><td style="width:30%;">Stock Out</td>
						</tr><tr style="color:Black;background-color:#CBCBCB;border-width:0px;border-style:Solid;height:20px;">
							<td style="width:1%;">3</td><td style="width:30%;">Temporary Production Delay</td><td style="width:30%;">Shipping Problem</td>
						</tr><tr style="color:Black;background-color:#CBCBCB;height:20px;">
							<td style="width:1%;">3</td><td style="width:30%;">Unusual Demand</td><td style="width:30%;">Exceeds Capacity</td>
						</tr><tr style="color:Black;background-color:#CBCBCB;border-width:0px;border-style:Solid;height:20px;">
							<td style="width:1%;">3</td><td style="width:30%;">Unusual Demand</td><td style="width:30%;">Unplanned Priority Expedite</td>
						</tr>
					</table>
				</div>
                                </div>
                    </td>
			</tr>
		</table>
	</div>
            
 

Open in new window

0
Kyle AbrahamsSenior .Net DeveloperCommented:
You have a height specified for 253px in your inline style on the gridview.  That's causing the spacing issue.
0
sqdperuAuthor Commented:
Awesome!   thanks.
0
sqdperuAuthor Commented:
All is working now.  Thanks guy for helping me to learn how this all works.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.