none
Como popular um GridView com Entity Framework? RRS feed

  • Pergunta

  • Boa noite,

    Gostaria de saber como faço para popular um GridView utilizando o Entity FRamework, quem puder ajudar dando um exemplo de como posso implementar tal recurso, agradeço antecipadamente.

    Um abraço, tudo de bom.

    terça-feira, 26 de julho de 2016 22:51

Respostas

  • Muito fiz da seguinte forma

    <asp:GridView ID="EstadoPesquisaGridView" runat="server" AutoGenerateColumns="False"
                        Width="100%" SkinID="gridviewSkin" AllowPaging="True" PageSize="20" AllowSorting="True"
                        DataSourceID="EstadoObjectDataSource" DataKeyNames="EstadoId" OnSelectedIndexChanged="EstadoPesquisaGridView_SelectedIndexChanged">
                        <Columns>
                            <asp:TemplateField ShowHeader="False">
                                <ItemTemplate>
                                    <asp:LinkButton  OnClientClick="DisabledLinkButton(this.id);" ID="LinkButton1" runat="server"
                                        CausesValidation="False" CommandName="Select" Text="Selecionar"></asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="EstadoId" SortExpression="EstadoId" HeaderText="Código" />
                            <asp:BoundField DataField="Sigla" SortExpression="Sigla" HeaderText="Sigla" />
                            <asp:BoundField DataField="Descricao" SortExpression="Descricao" HeaderText="Descrição">
                                <ItemStyle Width="100%" />
                            </asp:BoundField>
                        </Columns>
                    </asp:GridView>
                    <asp:ObjectDataSource ID="EstadoObjectDataSource" runat="server" EnablePaging="True"
                        SortParameterName="SortExpression" StartRowIndexParameterName="startIndex" MaximumRowsParameterName="pageSize"
                        SelectCountMethod="PesquisarCount" SelectMethod="Pesquisar" TypeName="Devcompy.ClientWebForms.Admin.Endereco.Estado.EstadoPesquisaUserControl">
                        <SelectParameters>
                            <asp:ControlParameter ControlID="DescricaoTextBox" Name="descricao" PropertyName="Text"
                                Type="String" DefaultValue="" />
                        </SelectParameters>
                    </asp:ObjectDataSource>

    Usando um asp:GridView junto de um asp:ObjectDataSource dentro da minha classe EstadoPesquisaUserControl tenho um método pesquisar da seguinte forma.

    int count = 0;
    
            public List<EstadoPesquisa> Pesquisar(int startIndex, int pageSize, string SortExpression, string descricao)
            {
                if (descricao == null)
                    descricao = "";
    
                var descricaoArray = descricao.Split(' ');
    
                DevcompyContext context = new DevcompyContext();
                var dados = from es in context.EstadoEntity
                            orderby es.Descricao
                            select new EstadoPesquisa()
                            {
                                EstadoId = es.EstadoId,
                                Descricao = es.Descricao,
                                Sigla = es.Sigla
                            };
    
                //where (descricao != "" ? descricaoArray.All(term => es.Descricao.Contains(term)) : true)
                if (descricao != "")
                    dados = dados.Where(es => descricaoArray.All(term => es.Descricao.Contains(term)));
    
                var retorno = dados.SortBy(SortExpression).Page(startIndex, pageSize, out count);
    
                return retorno;
            }
    
            public int PesquisarCount(string descricao)
            {
                return this.count;
            }

    Fiz alguns ajustes, não cheguei a testar, mas a ideia de tudo é isso ai

    Um conselho, comece a pensar em trabalhar com ASP.NET MVC

    quarta-feira, 27 de julho de 2016 02:26

Todas as Respostas

  • Muito fiz da seguinte forma

    <asp:GridView ID="EstadoPesquisaGridView" runat="server" AutoGenerateColumns="False"
                        Width="100%" SkinID="gridviewSkin" AllowPaging="True" PageSize="20" AllowSorting="True"
                        DataSourceID="EstadoObjectDataSource" DataKeyNames="EstadoId" OnSelectedIndexChanged="EstadoPesquisaGridView_SelectedIndexChanged">
                        <Columns>
                            <asp:TemplateField ShowHeader="False">
                                <ItemTemplate>
                                    <asp:LinkButton  OnClientClick="DisabledLinkButton(this.id);" ID="LinkButton1" runat="server"
                                        CausesValidation="False" CommandName="Select" Text="Selecionar"></asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="EstadoId" SortExpression="EstadoId" HeaderText="Código" />
                            <asp:BoundField DataField="Sigla" SortExpression="Sigla" HeaderText="Sigla" />
                            <asp:BoundField DataField="Descricao" SortExpression="Descricao" HeaderText="Descrição">
                                <ItemStyle Width="100%" />
                            </asp:BoundField>
                        </Columns>
                    </asp:GridView>
                    <asp:ObjectDataSource ID="EstadoObjectDataSource" runat="server" EnablePaging="True"
                        SortParameterName="SortExpression" StartRowIndexParameterName="startIndex" MaximumRowsParameterName="pageSize"
                        SelectCountMethod="PesquisarCount" SelectMethod="Pesquisar" TypeName="Devcompy.ClientWebForms.Admin.Endereco.Estado.EstadoPesquisaUserControl">
                        <SelectParameters>
                            <asp:ControlParameter ControlID="DescricaoTextBox" Name="descricao" PropertyName="Text"
                                Type="String" DefaultValue="" />
                        </SelectParameters>
                    </asp:ObjectDataSource>

    Usando um asp:GridView junto de um asp:ObjectDataSource dentro da minha classe EstadoPesquisaUserControl tenho um método pesquisar da seguinte forma.

    int count = 0;
    
            public List<EstadoPesquisa> Pesquisar(int startIndex, int pageSize, string SortExpression, string descricao)
            {
                if (descricao == null)
                    descricao = "";
    
                var descricaoArray = descricao.Split(' ');
    
                DevcompyContext context = new DevcompyContext();
                var dados = from es in context.EstadoEntity
                            orderby es.Descricao
                            select new EstadoPesquisa()
                            {
                                EstadoId = es.EstadoId,
                                Descricao = es.Descricao,
                                Sigla = es.Sigla
                            };
    
                //where (descricao != "" ? descricaoArray.All(term => es.Descricao.Contains(term)) : true)
                if (descricao != "")
                    dados = dados.Where(es => descricaoArray.All(term => es.Descricao.Contains(term)));
    
                var retorno = dados.SortBy(SortExpression).Page(startIndex, pageSize, out count);
    
                return retorno;
            }
    
            public int PesquisarCount(string descricao)
            {
                return this.count;
            }

    Fiz alguns ajustes, não cheguei a testar, mas a ideia de tudo é isso ai

    Um conselho, comece a pensar em trabalhar com ASP.NET MVC

    quarta-feira, 27 de julho de 2016 02:26
  • Muito obrigado pela ajuda.

    Um abraço, tudo de bom.

    quinta-feira, 28 de julho de 2016 00:00
  • Mas, eu posso utilizar o Entity Framework independentemente de ser uma aplicação WebForms ou MVC.
    quinta-feira, 28 de julho de 2016 13:01