How to prevent a Gridview to display on page_load

I have a Gridview that is displayed directly when you enter the page.

I want it to show first when I submit a button.....

I've tried to set it to Visible="false" and to "True" when I submit the button but this is'nt a good solution.
<asp:GridView ID="GridView2" Visible="false" DataKeyNames="EventId,AttendeeID" Width="700px" 
                        runat="server" AllowPaging="True" PageSize="30" AutoGenerateColumns="False" 
                        DataSourceID="SqlDataSource1" AllowSorting="True">
                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <Columns>
                    <asp:BoundField DataField="Fname" HeaderText="First Name" SortExpression="Fname" 
                    ItemStyle-Width="150px" >
                    </asp:BoundField>
                    <asp:BoundField DataField="Lname" HeaderText="Last Name" SortExpression="Lname" 
                    ItemStyle-Width="150px" >
                    </asp:BoundField>
                    <asp:BoundField DataField="EMail" HeaderText="e-mail" SortExpression="EMail" 
                    ItemStyle-Width="200px" >
                    </asp:BoundField>
                    <asp:BoundField DataField="RegDate" HeaderText="Registered (UTC)" 
                        SortExpression="RegDate" ItemStyle-Width="150px" >
 
                    </asp:BoundField>
                    
                    <asp:TemplateField ShowHeader="false" ItemStyle-Width="25">
                        <ItemTemplate>
                            <asp:HyperLink ID="myHyperLink" runat="server" NavigateUrl='<%# Eval("AttendeeID", "..\PAGES\AdminEditReg.aspx?atid={0}")%>' ImageUrl="..\..\images\edit.gif" />
                        </ItemTemplate>
                    
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="false" ItemStyle-Width="25">
                        <ItemTemplate>
                            <asp:ImageButton ID="button" runat="server" CausesValidation="false" CommandName="Delete" 
                            OnClientClick='return confirm("Are you sure you want to delete?");' ImageUrl="..\..\images\delete.gif" /> 
                        </ItemTemplate>
 
                    </asp:TemplateField>
                </Columns>     
            </asp:GridView>
                </td>
            </tr>
         </table>   
      
        <asp:SqlDataSource ID="SqlDataSource1" runat="server"
 
            ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" 
            
             SelectCommand="SELECT * FROM [Attendees] WHERE ([EventId] = @EventId)" FilterExpression="Fname like '%{0}%'
                or Lname like '%{1}%' or EMail like '%{2}%' " 
             
             DeleteCommand="DELETE FROM [Attendees] WHERE [AttendeeID] = @AttendeeID">
             
                <DeleteParameters> 
                    <asp:Parameter Name="AttendeeID" Type="Int32" />
                </DeleteParameters>
                <SelectParameters>
                    <asp:SessionParameter Name="EventId" SessionField="RegEventId" 
                        Type="Int32" />
                </SelectParameters>
                <FilterParameters>
                    <asp:ControlParameter Name="Fname" ControlID="searchTextBox" 
                        PropertyName="Text" />
                    <asp:ControlParameter Name="Lname" ControlID="searchTextBox" 
                        PropertyName="Text" />
                    <asp:ControlParameter Name="EMail" ControlID="searchTextBox" 
                        PropertyName="Text" />    
                </FilterParameters>
            
        </asp:SqlDataSource>

Open in new window

mattegolAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
David RobitailleConnect With a Mentor Analyst ProgrammerCommented:
then just dont bind it (leave "DataSourceID" blank)
then, whan you set it to visible to true, set the DataSourceID and call databind
GridView2.visible=true
GridView2.DataSourceID ="SqlDataSource1"
GridView2.databind
 
0
 
David RobitailleAnalyst ProgrammerCommented:
"I've tried to set it to Visible="false" and to "True" when I submit the button but this is'nt a good solution."
Why? it`s not working you have a philosophic objection against it?
0
 
mattegolAuthor Commented:
The user is only going to use the gridview sometimes and I don't wan't to get the database involved if I dont have to. If the gridview has lets say >3000 rows is slows the page down doesn't it?

Otherwise Visible="false" works fine for me...
0
 
mattegolAuthor Commented:
Thank you, simple solution just like I like it
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.