Usuário com melhor resposta
Como popular um GridView com Entity Framework?

Pergunta
-
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
- Editado Pablo Tôndolo de Vargas quarta-feira, 27 de julho de 2016 02:26 esclarecimento da resposta
- Sugerido como Resposta Robson William SilvaModerator quarta-feira, 27 de julho de 2016 12:20
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 27 de julho de 2016 16:47
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
- Editado Pablo Tôndolo de Vargas quarta-feira, 27 de julho de 2016 02:26 esclarecimento da resposta
- Sugerido como Resposta Robson William SilvaModerator quarta-feira, 27 de julho de 2016 12:20
- Marcado como Resposta Robson William SilvaModerator quarta-feira, 27 de julho de 2016 16:47
-
-