Usuário com melhor resposta
Filtrando campo dentro do dropbox

Pergunta
-
Boa Tarde. estou com a seguinte dificuldade.
estou apontando uma lista de material dentro de varios combobox porem ele mostra todos os registros na ordem de criação, estou tentando realizar uma filtragem para ele mostra somente campos não repetidos. igual quando você escolhe uma cidade e o próximo
combobox te retorna todas as cidades referente a aquela cidade. e não as cidades de todos estados.
se alguém tiver uma dica ficarei muito agradecido.
Respostas
-
Acredito que não entendi seu problema. O problema é só no preenchimento dos "ComboBox" que possui registros duplicados?
Se for isso vai resolver o seu problema, segue o exemplo do MaterialGrupo. Você vai precisar tocrar o "NomeDoAtributo' pela descrição que vai aparecer. Exemplo: "x.grupoDescricao";
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>(); lstMatGR = new materialBLL().cargaGrupo(); var comboCargas = lstMatGR.Select(x => x.NomeDoAtributo).Distinct().ToList(); this.cb_id_gr.DisplayMember = "ID_GR"; this.cb_id_gr.DataSource = comboCargas;
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
Bom estou tentando realizar uma filtragem dentro dos combo Box. utilizado o lista que eu carrego no datagredView
mas acho que o problema esta na logica.
- Marcado como Resposta Robert Sancts sexta-feira, 29 de abril de 2016 16:32
Todas as Respostas
-
-
Boa tarde Silvaney
é carregado uma stored Procedure com INNER JOIN em todas as Tabelas para carregar o material.
private void carregaSubfamilia()
{
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>();
lstMatGR = new materialBLL().cargaGrupo();
this.cb_id_gr.DisplayMember= "ID_GR";
this.cb_id_gr.DataSource=lstMatGR;
// PEGA APENAS O QUE TABELA SUBFAMILIA
IList<MaterialDGT> lstMatFM = new List<MaterialDGT>();
lstMatFM = new materialBLL().cargaFamilia();
this.cb_id_F.DisplayMember = "id_f";
this.cb_id_F.DataSource = lstMatFM;
this.cb_familia.DisplayMember = "FAMILIA";
this.cb_familia.DataSource = lstMatFM;
// PEGA APENAS O QUE TABELA SUBFAMILIA
IList<MaterialDGT> lstMatSB = new List<MaterialDGT>();
lstMatSB = new materialBLL().cargaSubfamilia();
this.cb_id_sf.DisplayMember = "ID_SF";
this.cb_id_sf.DataSource = lstMatSB;
this.cb_subfamilia.DisplayMember = "SUBFAMILIA";
this.cb_subfamilia.DataSource = lstMatSB;
//PEGA A LISTA DE MATERIAL A MESMA QUE POPULA O DATAGRIDVIEW
IList<MaterialDGT> lstMat = new List<MaterialDGT>();
lstMat = new materialBLL().cargaMaterial();
this.cb_des_tipo.DisplayMember = "DESC_TIPO_PT";
this.cb_des_tipo.DataSource = lstMat;
this.cb_desc_n_material.DisplayMember = "DESC_N_MAT_PT";
this.cb_desc_n_material.DataSource = lstMat;
this.cb_desc_n_dim.DisplayMember = "DESC_N_DIM_PT";
this.cb_desc_n_dim.DataSource = lstMat;
this.cb_desc_dim.DisplayMember = "DES_DIM_PT";
this.cb_desc_dim.DataSource = lstMat;
this.cb_desc_sch.DisplayMember = "DES_SCH_PT";
this.cb_desc_sch.DataSource = lstMat;
this.cb_desc_ext.DisplayMember = "DES_EXT_PT";
this.cb_desc_ext.DataSource = lstMat;
this.cb_desc_in.DisplayMember = "des_ins_pt";
this.cb_desc_in.DataSource = lstMat;
}
-
Já tentou dar "Distinct" ? Exemplo:
lstMatGR = new materialBLL().cargaGrupo().Distinct().ToList();
Você poderia colocar "distinct" na consulta (procedure).
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
Já tentou dar "Distinct" ? Exemplo:
lstMatGR = new materialBLL().cargaGrupo().Distinct().ToList();
Você poderia colocar "distinct" na consulta (procedure).
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
Da maneira que mandei acima. Exemplo: Para o "MaterialGrupo" ficaria assim:
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>(); lstMatGR = new materialBLL().cargaGrupo().Distinct().ToList(); this.cb_id_gr.DisplayMember = "ID_GR"; this.cb_id_gr.DataSource = lstMatGR;
Observe que apenas acrescentei ".Distinct().ToList()" no que você mandou. Dai você acrescenta nas outras listas.
Acredito que vai dar certo, mas se não resolver seu problema preciso que informe os atributos da sua classe "MaterialGrupo".
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
Da maneira que mandei acima. Exemplo: Para o "MaterialGrupo" ficaria assim:
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>(); lstMatGR = new materialBLL().cargaGrupo().Distinct().ToList(); this.cb_id_gr.DisplayMember = "ID_GR"; this.cb_id_gr.DataSource = lstMatGR;
Observe que apenas acrescentei ".Distinct().ToList()" no que você mandou. Dai você acrescenta nas outras listas.
Acredito que vai dar certo, mas se não resolver seu problema preciso que informe os atributos da sua classe "MaterialGrupo".
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
Bom dia. ainda não consegui resolver.
public IList<MaterialDGT> cargaMaterial()
{
SqlConnection CON = new SqlConnection();
try
{
CON.ConnectionString = Properties.Settings.Default.connectioString;
SqlCommand CM = new SqlCommand();
CM.CommandType = System.Data.CommandType.StoredProcedure;
CM.CommandText = "usp_MATERIAL_CARREGAR";
CM.Connection = CON;
SqlDataReader ER;
IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();
CON.Open();
ER = CM.ExecuteReader();
if (ER.HasRows)
{
while (ER.Read())
{
MaterialDGT MAT = new MaterialDGT();
////TBL_DGT
MAT.id_dgt = Convert.ToInt32(ER["id_dgt"]);
MAT.DGT = Convert.ToString(ER["DGT"]);
MAT.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
MAT.des_curta_us = Convert.ToString(ER["des_curta_us"]);
MAT.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
MAT.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
MAT.YRAW = Convert.ToString(ER["YRAW"]);
MAT.norma = Convert.ToString(ER["norma"]);
MAT.dr_eng = Convert.ToString(ER["dr_eng"]);
MAT.marca = Convert.ToString(ER["marca"]);
MAT.LONGA = Convert.ToString(ER["LONGA"]);
MAT.LONG = Convert.ToString(ER["LONG"]);
MAT.DETALLADA = Convert.ToString(ER["DETALLADA"]);
//TBL_GRUPO
MAT.ID_GR = Convert.ToString(ER["ID_GR"]);
MAT.GRUPO = Convert.ToString(ER["GRUPO"]);
//TBL_FAMILIA
MAT.id_f = Convert.ToString(ER["ID_f"]);
MAT.FAMILIA = Convert.ToString(ER["FAMILIA"]);
MAT.ID_SF = Convert.ToString(ER["ID_SF"]);
MAT.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);
//TBL_TIPO
MAT.ID_TP = Convert.ToString(ER["ID_TP"]);
MAT.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
MAT.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
MAT.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);
//TBL_N_MATERIAL
MAT.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
MAT.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
MAT.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
MAT.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);
//TBL_N_DIMENSIONAL
MAT.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
MAT.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
MAT.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
MAT.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);
//TBL_DIMENSIONAL
MAT.ID_DIM = Convert.ToString(ER["ID_DIM"]);
MAT.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
MAT.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
MAT.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);
//TBL_SCH
MAT.ID_SC = Convert.ToString(ER["id_sc"]);
MAT.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
MAT.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
MAT.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);
//TBL_EXTREMIDADE
MAT.ID_EXT = Convert.ToString(ER["id_ext"]);
MAT.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
MAT.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
MAT.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);
//TBL_INSPENSOES
MAT.ID_INSP = Convert.ToString(ER["id_insp"]);
MAT.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
MAT.des_ins_us = Convert.ToString(ER["des_ins_us"]);
MAT.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);
listaMaterial.Add(MAT);
}
}
return listaMaterial;
}
catch (SqlException ex)
{
throw new Exception("Erro Servidor Sql:" + ex.Number);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
CON.Close();
}
} -
Bom dia,
Faltou adicionar:
using System.Linq;
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta Robert Sancts sexta-feira, 29 de abril de 2016 14:27
- Não Marcado como Resposta Robert Sancts sexta-feira, 29 de abril de 2016 14:27
-
Bom dia,
Faltou adicionar:
using System.Linq;
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
Acredito que não entendi seu problema. O problema é só no preenchimento dos "ComboBox" que possui registros duplicados?
Se for isso vai resolver o seu problema, segue o exemplo do MaterialGrupo. Você vai precisar tocrar o "NomeDoAtributo' pela descrição que vai aparecer. Exemplo: "x.grupoDescricao";
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>(); lstMatGR = new materialBLL().cargaGrupo(); var comboCargas = lstMatGR.Select(x => x.NomeDoAtributo).Distinct().ToList(); this.cb_id_gr.DisplayMember = "ID_GR"; this.cb_id_gr.DataSource = comboCargas;
Att,Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
Acredito que não entendi seu problema. O problema é só no preenchimento dos "ComboBox" que possui registros duplicados?
Se for isso vai resolver o seu problema, segue o exemplo do MaterialGrupo. Você vai precisar tocrar o "NomeDoAtributo' pela descrição que vai aparecer. Exemplo: "x.grupoDescricao";
IList<MaterialGrupo> lstMatGR = new List<MaterialGrupo>(); lstMatGR = new materialBLL().cargaGrupo(); var comboCargas = lstMatGR.Select(x => x.NomeDoAtributo).Distinct().ToList(); this.cb_id_gr.DisplayMember = "ID_GR"; this.cb_id_gr.DataSource = comboCargas;
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
Bom estou tentando realizar uma filtragem dentro dos combo Box. utilizado o lista que eu carrego no datagredView
mas acho que o problema esta na logica.
- Marcado como Resposta Robert Sancts sexta-feira, 29 de abril de 2016 16:32
-
-