DifusioN 0 Denunciar post Postado Abril 27, 2010 Boa tarde gente. Estou com um probleminha. Eu estou usando um Gridview com um DataSource sem string SQL para consulta No Método do botão eu determino a String SQL e atualizo o Grid.... Até ai beleza.... Quando o grid vem, aparecem as opções para mudar de página e ver os resultados da segunda parte.... Ai que está o problema, quando clico no botão da pagina "tal", ele busca novamente o DATASOURCE usando a String que determinei (nesse casso, nenhuma), e ai o grid some, pq não tem nada para mostrar.... Eaew, oque vocês acham que eu poderia fazer? Olhem meu código da página ASP.net(Só da parque que interessa, detalhe, estou usando algumas coisinhas em Ajax para a página ficar mais dinamica...): <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0"> <cc1:TabPanel ID="Cli" runat="server" HeaderText="Cli"> <HeaderTemplate> <b>Buscar Clientes</b></HeaderTemplate> <ContentTemplate> <table align="center" style="font-weight: bold"> <tr> <td style="font-weight: bold" align="center"> Buscar Cliente: </td> <td align="left"> <asp:RadioButtonList ID="RadioButtonList_Cli" runat="server" RepeatDirection="Horizontal"> <asp:ListItem Selected="True" Value="COD">Por Código</asp:ListItem> <asp:ListItem Value="NOME">Por Nome</asp:ListItem> </asp:RadioButtonList> </td> </tr> <tr> <td align="right" style="font-weight: bold"> Digite o Código: </td> <td align="left"> <asp:TextBox ID="TB_Cli_Cod" runat="server"></asp:TextBox> </td> </tr> <tr> <td align="right" style="font-weight: bold"> Digite o Nome: </td> <td align="left"> <asp:TextBox ID="TB_Cli_NOME" runat="server" Width="320px"></asp:TextBox> </td> </tr> <tr> <td align="center" colspan="2"> <asp:Button ID="B_BuscaCli" runat="server" BorderColor="#990099" Font-Bold="True" ForeColor="Blue" OnClick="BuscaCli_Click" Text="Buscar" /> <asp:Button ID="B_TodosCli" runat="server" BorderColor="#990099" Font-Bold="True" ForeColor="Green" OnClick="TodosCli_Click" Text="Ver Todos" /> </td> </tr> </table> <br /> <br /> <table> <tr> <td align="center"> <asp:GridView ID="GridViewCli" runat="server" AutoGenerateColumns="true" BackColor="#953A9E" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="1" CellSpacing="1" DataSourceID="SqlDataSource1" AllowSorting="True" AllowPaging="True" Font-Size="Small" ForeColor="Black" > <RowStyle BackColor="White" VerticalAlign="Middle" HorizontalAlign="Center" /> <FooterStyle BackColor="#CCCCCC" /> <PagerSettings PageButtonCount="30" /> <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Center" /> <HeaderStyle BackColor="#953a9e" Font-Bold="True" ForeColor="White" /> </asp:GridView> </td> </tr> </table> </ContentTemplate> </cc1:TabPanel> </ContentTemplate> </asp:UpdatePanel> Datas Source: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:esteticael2ConnectionString %>"> </asp:SqlDataSource> Agora no arquivo C#: protected void BuscaCli_Click(object sender, EventArgs e) { if (RadioButtonList_Cli.SelectedValue == "COD") { SqlDataSource1.SelectCommand = "SELECT CPF [Codigo], Nome, RG,CPF2 CPF, REPLACE(REPLACE(Sexo,'1','MASCULINO'),'0','FEMININO') [SEXO], Telefone, Celular, Email, Estado, Cidade, Bairro, Rua, CEP, Observacao [Observação] from Cliente where CPF = '" + TB_Cli_Cod.Text + "' order by Nome"; } else { SqlDataSource1.SelectCommand = "SELECT CPF [Código], Nome, RG,CPF2 CPF, REPLACE(REPLACE(Sexo,'1','MASCULINO'),'0','FEMININO') [SEXO], Telefone, Celular, Email, Estado, Cidade, Bairro, Rua, CEP, Observacao [Observação] from Cliente where Nome LIKE '%" + TB_Cli_NOME.Text + "%' order by Nome"; } GridViewCli.DataBind(); } protected void TodosCli_Click(object sender, EventArgs e) { SqlDataSource1.SelectCommand = "SELECT CPF [Código], Nome, RG,CPF2 CPF, REPLACE(REPLACE(Sexo,'1','MASCULINO'),'0','FEMININO') [SEXO], Telefone, Celular, Email, Estado, Cidade, Bairro, Rua, CEP, Observacao [Observação] from Cliente order by Nome"; GridViewCli.DataBind(); } Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 27, 2010 No evento de paginação você terá que fazer a mesma coisa que é feita no evento do botão, crie um método. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DifusioN 0 Denunciar post Postado Abril 28, 2010 No evento de paginação você terá que fazer a mesma coisa que é feita no evento do botão, crie um método. Abraços... Muitooooo Obrigado, me ajudou muito seu tópico...Eu consegui resolver. Vou deixar aqui a explicação de como eu fiz para em caso de alguém mais precisar: Nas configurações do Gridview adicionei o método OnPageIndexChanging="GridViewCli_PageIndexChanging" E ficou: <asp:GridView ID="GridViewCli" runat="server" AutoGenerateColumns="true" BackColor="#953A9E" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="1" CellSpacing="1" DataSourceID="SqlDataSource1" AllowSorting="True" Font-Size="Small" ForeColor="Black" AllowPaging="True" OnPageIndexChanging="GridViewCli_PageIndexChanging"> <PagerSettings PageButtonCount="30" /> <RowStyle BackColor="White" VerticalAlign="Middle" HorizontalAlign="Center" /> <FooterStyle BackColor="#CCCCCC" /> <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Center" /> <HeaderStyle BackColor="#953a9e" Font-Bold="True" ForeColor="White" /> </asp:GridView> No C# coloquei uma variável estática na classe: public partial class Buscas : System.Web.UI.Page { public static String SQL; . . . No método de buscar eu mandei salvar o resultado da String SQL da busca nessa variável: protected void TodosCli_Click(object sender, EventArgs e) { SQL = "SELECT CPF [Código], Nome, RG,CPF2 CPF, REPLACE(REPLACE(Sexo,'1','MASCULINO'),'0','FEMININO') [SEXO], Telefone, Celular, Email, Estado, Cidade, Bairro, Rua, CEP, Observacao [Observação] from Cliente order by Nome"; SqlDataSource1.SelectCommand = SQL; GridViewCli.DataBind(); } E no método GridViewCli_PageIndexChanging ficou: protected void GridViewCli_PageIndexChanging(Object sender, GridViewPageEventArgs e) { GridViewCli.PageIndex = e.NewPageIndex; SqlDataSource1.SelectCommand = SQL; GridViewCli.DataBind(); } Compartilhar este post Link para o post Compartilhar em outros sites