Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DifusioN

[Resolvido] Gridview + Allowpaging + Datasource Sem String = Prob

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.