Search code examples
c#asp.netgridviewloginview

Why is my GridView objects not seen in code?


why cant I use GridVew?

<LoggedInTemplate>
                <asp:GridView ID="GridView1" runat="server" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000" AutoGenerateColumns="false" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2">
                    <Columns>
                        <asp:BoundField DataField="Name" HeaderText="File Name" />
                        <asp:TemplateField ItemStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <asp:LinkButton ID="lnkDownload" runat="server" CommandArgument='<%# Eval("Id") %>' OnClick="DownloadFile" Text="Download"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <asp:FileUpload ID="FileUpload1" runat="server" />
                <asp:Button ID="btnUpload" runat="server" OnClick="Upload" Text="Upload" />
            </LoggedInTemplate>


using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "select Id, Name from tblFiles";
                    cmd.Connection = con;
                    con.Open();
                    //GridView1.DataSource = cmd.ExecuteReader();
                    //GridView1.DataBind();
                    con.Close();
                    LoginView3.DataSource = cmd.ExecuteReader();
                    GridView1.DataBind();
                    LoginView3.GridView1.DataSource = cmd.ExecuteReader();
                }

Here is screenshot. https://www.dropbox.com/s/81186zjwkp482ms/Zrzut%20ekranu%202014-09-15%2009.10.48.png?dl=0


Solution

  • Your gridview is inside the template control, LoggedInTemplate in this case. So it is not accessible a control directly, which is inside a template of another control. You need to find the control using the code something like below

    GridView gridView = yourMainControl.FindControl("GridView1") as GridView;
    

    Then you can use the control further.