Solved

GridView footer is not showing up

Posted on 2013-01-07
6
1,005 Views
Last Modified: 2013-01-14
I have a GridView on the web page. I added Footertemplate to GridView. There is add button outside the GridView. When I click the add button I want to show the footer.
It is entering into button click, not showing any error. But still the footer is not displayed.

Please see the markup and code.
<asp:GridView ID="grd1" runat="server" SkinID="GridView10RowsSortAndPage" OnRowCommand="Grid_RowCommand"
                                                                            OnRowDataBound="Grid_RowDataBound">
                                                                            <Columns>
                                                                                <asp:BoundField DataField="Number" HeaderText="Number" SortExpression="Number" />
                                                                                <asp:TemplateField HeaderText="Amount">
                                                                                    <ItemTemplate>
                                                                                        <asp:LinkButton ID="btnAmt" runat="server" Text='<%# Bind("AMOUNT")%>'
                                                                                            CommandName="Select"></asp:LinkButton>
                                                                                    </ItemTemplate>
                                                                                       <FooterTemplate>
                                                                                        <asp:LinkButton ID="btnInsert" CommandName="Insert" Text="Insert" runat="Server"></asp:LinkButton>
                                                                                        &nbsp;
                                                                                        <asp:LinkButton ID="btnDelete" runat="server" CausesValidation="false" Text="Cancel"></asp:LinkButton>
                                                                                    </FooterTemplate>
                                                                                </asp:TemplateField>
                                                                                <asp:TemplateField HeaderText="Type">
                                                                                    <ItemTemplate>
                                                                                        <asp:Label ID="lblDesc" runat="server" Text='<%# Bind("DESCRIPTION")%>'></asp:Label>
                                                                                    </ItemTemplate>
                                                                                  <FooterTemplate>
                                                                                        <asp:TextBox ID="txtDesc" runat="server" Text='<%# Bind("DESCRIPTION")%>'>  </asp:TextBox>
                                                                                    </FooterTemplate>
                                                                                </asp:TemplateField>
                                                                                <asp:TemplateField HeaderText="Date">
                                                                                    <ItemTemplate>
                                                                                        <asp:Label ID="lbldate" runat="server" Text='<%# Bind("Date")%>'></asp:Label>
                                                                                    </ItemTemplate>
                                                                                   <FooterTemplate>
                                                                                        <asp:TextBox ID="txtdate" runat="server" Text='<%# Bind("Date")%>'>  </asp:TextBox>
                                                                                    </FooterTemplate>
                                                                                </asp:TemplateField>
                                                                                <asp:TemplateField HeaderText="Time">
                                                                                    <ItemTemplate>
                                                                                        <asp:Label ID="lbltime" runat="server" Text='<%# Bind("TIME")%>'></asp:Label>
                                                                                    </ItemTemplate>
                                                                                   <FooterTemplate>
                                                                                        <asp:TextBox ID="txttime" runat="server" Text='<%# Bind("TIME")%>'> </asp:TextBox>
                                                                                    </FooterTemplate>
                                                                                </asp:TemplateField>
                                                                               
                                                                                <asp:TemplateField HeaderText="Name">
                                                                                    <ItemTemplate>
                                                                                        <asp:Label ID="lblname" runat="server" Text='<%# Bind("Name")%>'></asp:Label>
                                                                                    </ItemTemplate>
                                                                                     <FooterTemplate>
                                                                                        <asp:TextBox ID="txtMbrName" runat="server" Text='<%# Bind("MemberName")%>'>  </asp:TextBox>
                                                                                    </FooterTemplate>
                                                                                </asp:TemplateField>
                                                                            </Columns>
                                                                        </asp:GridView>

   <asp:TableRow SkinID="GeneralRowSkin">
                                                                                                <asp:TableCell SkinID="TableCellSkin">
                                                                                                        <asp:ImageButton ID="btnAdd" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/App_Themes/Images/add.gif" OnClick="ImageButton_Clicked"/> &nbsp;
                                                                                                       
                                                                                                </asp:TableCell>
                                                                                           </asp:TableRow>      





 protected void ImageButton_Clicked(object sender, ImageClickEventArgs e)
        {
            try
            {
                ImageButton img = (ImageButton)sender;
                switch (img.ID.Trim())
                {

                    case "btnAdd":
                        {
                         
                            grd1.ShowFooter = true;
                           
                            break;
                        }
                }
            }
            catch (Exception ex)
            {
               
            }
            finally
            {

            }
           

        }  

Any suggestions please.

Thanks
0
Comment
Question by:KavyaVS
6 Comments
 
LVL 15

Assisted Solution

by:navneethegde
navneethegde earned 50 total points
ID: 38752974
0
 
LVL 35

Accepted Solution

by:
Miguel Oz earned 300 total points
ID: 38753207
If you replace your handler for:
protected void ImageButton_Clicked(object sender, ImageClickEventArgs e)
{
                             grd1.ShowFooter = true;
}

Open in new window

Does it work?
How is the gridview loading data? Which method/events is loading it?

If it does not work you need to call this line (grd1.ShowFooter = true) in the Page_Load event using the code shown below:
        string eventTarget = Request.Params.Get("__EVENTTARGET");
        if (IsPostBack && eventTarget == btnAdd.UniqueID)
            grd1.ShowFooter = true;

Open in new window

0
 

Author Comment

by:KavyaVS
ID: 38754929
Hi,
This code is not working for me.
protected void ImageButton_Clicked(object sender, ImageClickEventArgs e)
{
                             grd1.ShowFooter = true;
}

I tried this in the page load.But this line is not turning to true if (IsPostBack && eventTarget == btnAdd.UniqueID).
So not entering here  grd1.ShowFooter = true;
 string eventTarget = Request.Params.Get("__EVENTTARGET");
        if (IsPostBack && eventTarget == btnAdd.UniqueID)
            grd1.ShowFooter = true;


I am populating this grid in the Grid Row command of another Grid.When the Linkbutton in another Grid row is clicked it is populating this Grid.
There are 2 grids in the page.The 1st grid populating in page load.

Thanks
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 35

Assisted Solution

by:Miguel Oz
Miguel Oz earned 300 total points
ID: 38757034
Please add a breakpoint at:
if (IsPostBack && eventTarget == btnAdd.UniqueID)
and report the following values after you clicked the button:
IsPostBack
eventTarget
btnAdd.UniqueID
0
 
LVL 41

Assisted Solution

by:guru_sami
guru_sami earned 150 total points
ID: 38760747
ShowFooter will tell you if the Footer show be there or not.

1: Set ShowFooter="true" for the Gridview in your markup.

2: Set the visibility of FooterRow like this:

protected void Page_Load(object sender, EventArgs e)
    {
        grd1.FooterRow.Visible = false;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        grd1.FooterRow.Visible = true;
    }

Open in new window

0
 

Author Closing Comment

by:KavyaVS
ID: 38774807
Thanks
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Problem with SqlConnection 5 109
How to read XML file attributes... 17 40
Problem to go to Web page 2 48
Round up to 100% in .NET 10 42
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now