Inquiridor
Filtrar Áreas, Categorias e Subcategorias em GridView por parametros.

Pergunta
-
Boa tarde Senhores(as),
Possuo o seguinte cenário:
Uma pagina com um gridview que lista todas as áreas de minha aplicação, ao clicar no botão DETALHES o usuário é redirecionado para a pagina de CATEGORIAS onde um Request.QueryString recebe o ID da Área e deve exibir em um GridView todas as categorias existentes naquela área.
Estou tendo dificuldades no GridView, através da passagem de parâmetros pelo Request.QueryString não consigo filtrar os dados e exibir os dados APENAS daquela área.
====================================================================================================
GridView na pagina de Categorias
<asp:GridView ID="Lista" runat="server" AllowPaging="true"
AutoGenerateColumns="false" PageSize="10"
onpageindexchanging="Lista_PageIndexChanging" onsorting="Lista_Sorting" onrowcommand="Lista_RowCommand"
Width="100%" >
<Columns>
<asp:BoundField DataField="idCategorias" HeaderText="Categorias"
ReadOnly="True" SortExpression="idCategorias" />
<asp:BoundField DataField="idAreas" HeaderText="Areas"
SortExpression="idAreas" />
<asp:BoundField DataField="cat_nome" HeaderText="Nome"
SortExpression="cat_nome" />
<asp:BoundField DataField="cat_descricao" HeaderText="Descricao"
SortExpression="cat_descricao" />
<asp:BoundField DataField="cat_observacoes" HeaderText="Observacoes"
SortExpression="cat_observacoes" />
</Columns>
</asp:GridView>
código do arquivo .CS
Conexao con = new Conexao();
protected void Page_Load(object sender, EventArgs e)
{
int _id = Convert.ToInt16( Request.QueryString["id"] );
if (!IsPostBack)
{
Action_Grid();
}
}
protected void Lista_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
Lista.PageIndex = e.NewPageIndex;
Action_Grid();
}
protected void Action_Grid()
{
Lista.DataSource = con.tbcategorias;
Lista.DataBind();
}
Todas as Respostas
-
-
-
-
Sim meu nobre, desejo passar um parâmetro pelo Request.QueryString[] , esse deve ser a identificação da área “idArea” que desejo que sejam exibidas as categorias nela existentes.
Assim a tabela (GridView) vai demonstrar apenas os itens que possuem essa chave estrangeira.
Bom, deixe-me tentar te passar mais detalhes da aplicação e de como cheguei a esse DataSource:
Tenho duas tabelas no banco MySQL relacionadas,
tbAreas (nome da tabela)
idAreas (PK)
are_nome
are_descricao
tbCategorias (nome da tabela)
idCategorias (PK)
idAreas (FK que vem da tbAreas)
cat_nome
cat_descricao
A connectionString foi nomeada Conexao em meu web.config, na primeira linha do código .CS “Conexao com = new Conexao()” já mostra a declaração dela e o meu Namespace já esta em uso também.
No trecho
protected void Action_Grid()
{
Lista.DataSource = con.tbcategorias;
Lista.DataBind();
}
esse datasource é o que já esta trazendo os valores existentes na tabela tbCategorias, porem eis o local aonde eu estou com a tremenda dificuldade em como fazer para filtrar esses dados.
Tens alguma dica para me auxiliar?
Grato. -
No link: http://ajuda.uolhost.com.br/index.php?p=resposta&res=1226#rmcl têm um exemplo de como se conectar ao Mysql e criar uma fonte da dados.
Altere o select para:
string cmdMYSQL = string.Format("SELECT * FROM tbCategorias WHERE idAreas = " + Request.QueryString["idAreas"] );
E use a fonte resultante como DataSource do seu gridview.
QQ dúvida é só postar!
Ninguém falou que seria fácil!
-
o problema está aqui
int _id = Convert.ToInt16( Request.QueryString["id"] ); if (!IsPostBack) { Action_Grid(); }
com o !ispostback ele não vai entrar para fazer o load na sua grid novamente e para sua consulta vc deve passar o id tb
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
- Marcado como Resposta Harley Araujo quarta-feira, 11 de abril de 2012 12:40
- Não Marcado como Resposta Harley Araujo quarta-feira, 11 de abril de 2012 12:40
- Sugerido como Resposta Harley Araujo quarta-feira, 11 de abril de 2012 12:40
- Não Sugerido como Resposta T3ll3s quarta-feira, 11 de abril de 2012 18:42
-
remover o ispostback não altera em nada meu nobre, de qualquer forma tenho que preencher o gridview, esse apenas seria para caso a pagina fosse repostada ele recarregar o gridview.
O meu objetivo é filtrar os dados do grid para apenas serem exibidas as categorias de uma unica área.
-
-