Ir ao conteúdo
  • Cadastre-se

C# DropDownList criando colunas a mais


Posts recomendados

Pessoal temos uma tabela que s campos são inseridos pelo dropdownList porém ta havendo um bug que ele esta inserindo colunas a mais na lista, alguém sabe como resolver?

 

bug.png.7d9cd6c37ad828837772ff20ac95ae3f.png

 

Como podem ver as 2 primeiras linhas criaram colunas a mais vazias, eis o código:

 

<div class="row" id="linhaResultado">
            <section>
                <div class="col-md-12 col-lg-12 col-xs-12">
                    <h2>Resultado da Pesquisa</h2>
                    <table id="mytable" class="table table-hover table-bordered">
                        <thead>
                            <tr>
                                <th style="color: rgba(0,0,0,.54);">Codigo</th>


                                @if (Model.TipoDeParametroDePesquisa == "NomeDaPasta")
                                {
                                    <th style="color: rgba(0,0,0,.54);">Nome da Pasta</th>
                                }
                                 else if (Model.TipoDeParametroDePesquisa != "CodigoDoFormulario")
                                {
                                <th style="color: rgba(0,0,0,.54);">Nome da Vitima</th>
                                }

                                <th style="color: rgba(0,0,0,.54);">
                                    Editar
                                </th>

                                <th style="color: rgba(0,0,0,.54);">
                                    Excluir
                                </th>
                            </tr>
                        </thead>
                        
                        <tbody>
                            @foreach (var chave in Model.ListaNomeVitimaCodFormulario.Keys)
                            {
                            <tr>
                                <td> @chave </td>

                                @if (Model.TipoDeParametroDePesquisa == "NomeDaPasta")
                                {
                                    <td>@Model.ParametroDePesquisa</td>
                                }

                                @if (Model.TipoDeParametroDePesquisa != "CodigoDoFormulario")
                                {
                                    @foreach (var valor in Model.ListaNomeVitimaCodFormulario[chave])
                                    {
                                        <td> @valor </td>
                                    }
                                 } 


                                <td style="width: 30px;padding: 0.3em;">
                                    <a href="/Pasta/@chave/Inquerito"
                                       class="btn btn-sm pmd-btn-fab pmd-btn-raised pmd-ripple-effect btn-outline-primary notification-trigger opcaoPesquisa"
                                       type="button" data-trigger="hover" data-toggle="popover" data-placement="top" data-content="Editar"
                                       style="margin-left: 8px;">
                                        <i class="material-icons pmd-sm">create</i>
                                    </a>
                                </td>
                                <td style="width: 30px;padding: 0.3em;">
                                    <a href="/ExcluirFormulario/@chave"
                                       class="btn btn-sm pmd-btn-fab pmd-btn-raised pmd-ripple-effect btn-outline-danger notification-trigger opcaoPesquisa"
                                       type="button" data-trigger="hover" data-toggle="popover" data-placement="top" data-content="Excluir"
                                       style="background: white;color:red;margin-left: 8px;">
                                        <i class="material-icons pmd-sm">clear</i>
                                    </a>
                                </td>
                            </tr>          
                            }

                        </tbody>
                    </table>
                </div>
            </section>
        </div>

Código da dropdownlist (ViewModel)

 

public class PesquisarViewModel
    {
        public PesquisarViewModel()
        {
            ListaNomeVitimaCodFormulario = new Dictionary<int, IEnumerable<string>>();
            Mensagem = "";

            var grupoComboNaturezaCriminal = new SelectListGroup { Name = "Natureza Criminal" };
            var grupoParametroPesquisa = new SelectListGroup { Name = "Paramêtros de Pesquisa" };

            ListaDropDownPesquisa = new List<SelectListItem>()
            {
                new SelectListItem{ Value="NomeDaVitima", Text="Nome da vítima", Selected = true, Group = grupoParametroPesquisa },
                new SelectListItem{ Value="NomeDaPasta", Text="Nome da pasta", Group = grupoParametroPesquisa },
                new SelectListItem{ Value="CodigoDoFormulario", Text="Código do formulário", Group = grupoParametroPesquisa },
                new SelectListItem{ Value="Feminicidio Consumado", Text="Feminicídios consumados", Group = grupoComboNaturezaCriminal },
                new SelectListItem{ Value="Feminicidio Tentado", Text="Feminicídios tentados", Group = grupoComboNaturezaCriminal, Disabled = false },
                new SelectListItem{ Value="Homicidio Consumado", Text="Homicídios", Group = grupoComboNaturezaCriminal },
                new SelectListItem{ Value="Homicidio Tentado", Text="Tentativas de homicídio", Group = grupoComboNaturezaCriminal}
            };
        }

        public string TipoDeParametroDePesquisa { get; set; }
        public string ParametroDePesquisa { get; set; }
        public string Mensagem { get; set; }
        public List<SelectListItem> ListaDropDownPesquisa { get; set; }
        public Dictionary<int, IEnumerable<string>> ListaNomeVitimaCodFormulario { get; set; }

        private void SelecionaOpcaoSelectedListaDropDownPesquisa()
        {
            foreach (var item in ListaDropDownPesquisa)
                if (item.Value == TipoDeParametroDePesquisa)
                    item.Selected = true;
        }

        public PesquisarViewModel SelectByCodFormulario()
        {
            FormularioModel formularioModel = new FormularioModel();

            if (!int.TryParse(ParametroDePesquisa, out int parametroConvertido))
            {
                Mensagem = "AVISO: Dados não encontrados!";
                return this;
            }

            int codFormularioSelecionado = formularioModel.Select(parametroConvertido)?.CodFormulario ?? -1;

            if (codFormularioSelecionado <= 0) {
                Mensagem = "AVISO: Dados não encontrados!";
                return this;
            }

            ListaNomeVitimaCodFormulario.Add(codFormularioSelecionado, formularioModel.SelectVitimasByCodFormulario(codFormularioSelecionado));

            Mensagem = $"Pesquisa por {ParametroDePesquisa} realizada com sucesso!";
            SelecionaOpcaoSelectedListaDropDownPesquisa();
            return this;
        }

        public PesquisarViewModel SelectByVitimaNome()
        {
            string nomeParametro = "";

            if (!string.IsNullOrWhiteSpace(ParametroDePesquisa))
                nomeParametro = ParametroDePesquisa;

            FormularioModel formularioModel = new FormularioModel();

            int[] arrayCodigosFormularios =
                formularioModel.SelectByVitimaNome(nomeParametro);

            if (arrayCodigosFormularios == null)
            {
                Mensagem = "AVISO: Dados não encontrados!";
                return this;
            }

            foreach (int codFormulario in arrayCodigosFormularios)
                ListaNomeVitimaCodFormulario.Add(codFormulario,
                    formularioModel.SelectVitimasByCodFormulario(codFormulario));

            SelecionaOpcaoSelectedListaDropDownPesquisa();
            Mensagem = $"Pesquisa por {ParametroDePesquisa} realizada com sucesso!";
            return this;
        }

        public PesquisarViewModel SelectByPasta()
        {
            string nomePasta = "";

            if (!string.IsNullOrWhiteSpace(ParametroDePesquisa))
                nomePasta = ParametroDePesquisa;

            FormularioModel formularioModel = new FormularioModel();

            int[] arrayCodigosFormularios = formularioModel.SelectByPasta(nomePasta);

            if (arrayCodigosFormularios == null)
            {
                Mensagem = "AVISO: Dados não encontrados!";
                return this;
            }

            foreach (int codFormulario in arrayCodigosFormularios)
                ListaNomeVitimaCodFormulario.Add(codFormulario,
                    formularioModel.SelectVitimasByCodFormulario(codFormulario));

            Mensagem = $"Pesquisa por {ParametroDePesquisa} realizada com sucesso!";
            SelecionaOpcaoSelectedListaDropDownPesquisa();
            return this;
        }

        public PesquisarViewModel SelectByNaturezaCriminal()
        {
            string parametroDePesquisa = "";            
            
            FormularioModel formularioModel = new FormularioModel();

            int[] arrayCodigosFormularios =
                formularioModel.SelectByNaturezaCriminal(TipoDeParametroDePesquisa, ParametroDePesquisa);

            if (arrayCodigosFormularios == null)
            {
                Mensagem = "AVISO: Dados não encontrados!";
                return this;
            }

            foreach (var codFormulario in arrayCodigosFormularios)
                ListaNomeVitimaCodFormulario.Add(codFormulario, formularioModel.SelectVitimasByCodFormulario(codFormulario));

            SelecionaOpcaoSelectedListaDropDownPesquisa();
            Mensagem = $"Pesquisa por {parametroDePesquisa} realizada com sucesso!";
            return this;
        }
    }

Qualquer coisa posso postar mais código, alguém pode ajudar? 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...