drigo 0 Denunciar post Postado Outubro 29, 2009 Olaa, Faço uso de um Gridview que é carregado por valores vindos de uma determinada tabela do banco, mas como são muitos valores eu necessito que esses dados sejam mostrados atraves de paginação do respectivo Gridview, mas quando vou na seção de propriedades do Gridviw e coloco "AllowPaging =True" nada é mostrado no gridview, so é mostrado os dados se "AllowPaging =False". Como posso configurar o Gridview para mostrar de 20 em 20 resgistros e a paginação funcionar perfeitamente ??? Desde Já, Agradeçoo... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 2, 2009 Poste seu código HTML e o código c# ou vb.net Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 3, 2009 Olaa, Segue abaixo o código solicitado, no que se refere a paginação eu ativo a mesma nas propriedades do Gridview (AllowPagging=True)... protected void preencherGridView() { string ConnectionString = "..."; try { conn.ConnectionString = ConnectionString; conn.Open(); OracleCommand preenchergrid = new OracleCommand("select NOMEUSUARIO,TELEFONE,ENDERECO from CLIENTES.TAB_CADASTRO", conn); GridPreencher = preenchergrid.ExecuteReader(); while (GridPreencher.Read()){ Dadosgdv.DataSource = GridPreencher; Dadosgdv.DataBind(); } } catch (Exception Egrid) { } finally{ if (GridPreencher != null) { GridPreencher.Close(); } if (conn != null) { conn.Close(); } } } Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 3, 2009 Alimente um DataTable para definir ele como DataSource do seu grid. Por que quando você der um close no seu DataReader como esta fazendo finally, já era os dados. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 4, 2009 Olaa... Consegui resolver o problema, muito obrigado mesmo por sua ajuda. Mas surgiu outro problema: Inicialmente eu Alimentei um DataTable para definir ele como DataSource no meu GridView, consegui carregar os dados sem nenhum tipo de problema, mas eu realizo outros tipos de operações nesse mesmo GridView, como SELECTS que irão novamente recaregar esse Grid e mostrar novos resultados, mas o seguinte erro é apresentado: "Both DataSource and DataSourceID are defined on 'GridDados'.Remove one definition." Existe a possibilidade de eu realizar esses SELECTS e preencher novamente esses valores resultantes no GridView??? Segue abaixo os códigos, para uma melhor visualização: //Função que recebe o SELECT como parâmetro e preenche o resultado do mesmo no GridView ... protecetd void BuscarDados(string selectbusca){ //Limpa o GridView............. gdvAuditoria.DataSource = null; gdvAuditoria.DataBind(); //............................. string ConnectionString = "..."; OracleConnection conectar = new OracleConnection(); OracleDataReader buscar = null; try{ conectar.ConnectionString = ConnectionString; conectar.Open(); //"selectbusca" vai ser recebida por parâmetro e contêm o Select que será executado... OracleCommand cmd = new OracleCommand(selectbusca, conectar); buscar = cmd.ExecuteReader(); while (buscar.Read()) { GridDados.DataSource = buscaInfo; GridDados.DataBind(); } } catch (Exception EGrid) { } } //CÓDIGO CONTIDO NO CODE-BEHIND, CORRESPONDENTE AO PREENCHIMENTO INICIAL DO GRIDVIEW... <asp:GridView ID="GridDados" DataSourceID="Carregar" runat="server" Height="206px" Width="244px" ForeColor="#333333" PageSize="20" AllowPaging="True" AllowSorting="True"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#EFF3FB" /> <EditRowStyle BackColor="#2461BF" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="Blue" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView><br /> <asp:SqlDataSource ID="Carregar" runat="server" ConnectionString="..." ProviderName="System.Data.OracleClient" SelectCommand="SELECT NOME,ENDERECO,TELEFONE from CLIENTES.CADASTRO"> </asp:SqlDataSource> Novamente Muito obrigado ... Grande Abraçoo... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 4, 2009 Como esta fazendo o carregamento pelo c#, você não precisa da propriedade DataSourceID="Carregar" na sua grid, nem do objeto <asp:SqlDataSource. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 5, 2009 Olaa, Entendi perfeitamente seu comentário, e foi retirado a propriedade DataSourceID="Carregar" , e o objeto <asp:SqlDataSource>, mas fazendo o carregamento pelo C#, os valores do gridview somente são preenchidos se a Paginação e o Sorting estiverem como FALSE. Carregando pelo C# e mantendo a paginação e Sorting como verdadeiro,o GridView não é preenchido e o seguinte erro é apresentado:"The data source does not support server-side data paging"... Abraçoo... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 5, 2009 Você setou como DataSource da sua grid o buscaInfo,o que é este buscaInfo eu não encontrei você alimentando ele em nenhum local. Por isso a grid não é alimentada. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 5, 2009 Olaa... O problema anterior citado por você ja foi corrigido, e o grid ja esta carregando os dados perfeitamente, mas o problema referente ao Pagging e Sorting como true, citado anteriormente persiste... while (buscar.Read()) { GridDados.DataSource = buscar; GridDados.DataBind(); } Novamente muito obrigado pela paciência ... Abraço... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 5, 2009 Poste novamente o html da sua grid. E o correto seria passar um DataTable como DataSource da sua grid e não um DataReader, o DataReader mantem conexão aberta com o banco, alimente um datatable e passe ele como datasource. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Novembro 5, 2009 como disse o quintelab, eh muito melhor utilizar o datatable para montar grids da para fazer a mesma rotina que você esta utilizando DataTable DT = new DataTable(); DT = Consulta; if (DT.rows.count != 0) { GridDados.DataSource = DT; GridDados.DataBind(); } Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 5, 2009 Olaa... Segue abaixo o código solicitado com as devidas modificações, baseado na implementação do "Rafael Mitsunaka" mas os seguintes erros são apresentados: 1)Data.DataTable' does not contain a definition for 'rows'... 2)Cannot implicitly convert type 'int' to 'System.Data.DataTable'... protected void Buscar(string statement){ string ConnectionString = "..."; OracleConnection conn = new OracleConnection(); DataTable dt = new DataTable(); try{ conn.ConnectionString = ConnectionString; conn.Open(); OracleCommand cmd = new OracleCommand(statement, conn); dt = cmd.ExecuteNonQuery(); if (dt.rows.count != 0){ GridView.DataSource = dt; GridView.DataBind(); } } catch (Exception EGridView) { } } Novamente grato pela paciência... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 6, 2009 quintelab, Fiz algumas modificações, e já consegui preencher o GridView (Acredito que segue as suas indicações enviadas no último post enviado por você). Mas a paginação e Sorting quando defidos como true: apresentam os seguintes erros: 1)The GridView 'GridView1' fired event PageIndexChanging which wasn't handled. 2)The GridView 'GridView1' fired event Sorting which wasn't handled. Segue abaixo o código para você ter uma melhor visualização: protected void PreencherGrid(string statement){ string ConnectionString = "..."; OracleConnection conn = new OracleConnection(ConnectionString); DataTable dt = new DataTable(); DataSet ds = new DataSet(); try{ conn.Open(); OracleDataAdapter Odt = new OracleDataAdapter(statement,conn); Odt.Fill(ds,"CLIENTES"); GridView1.DataSource = ds.Tables["CLIENTES"].DefaultView; GridView1.DataBind(); } catch (Exception EGrid) { } } <asp:GridView ID="GridView1" runat="server" Height="206px" Width="244px" ForeColor="#333333" PageSize="20" AllowSorting="True" AllowPaging="True"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#EFF3FB" /> <EditRowStyle BackColor="#2461BF" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> Abraço... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 6, 2009 Esta correto o ultimo código, mas quando você utiliza paginação e ordenação você precisa dos eventos de ambos no lado do c#. Você precisa criar estes eventos e associa-los a sua grid. Basta fazer uma busca por GridView + PageIndexChanging e GridView + Sorting Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Novembro 9, 2009 Olaa... Consegui Resolver o Problema, novamente obrigado por sua paciência e atenção... Grande Abraçoo... Compartilhar este post Link para o post Compartilhar em outros sites