SelectedValue pegando valor selecionado incorreto

C#

Back-end

11/02/2020

Bom dia pessoal

Tenho uma combo de empresa que ao ser selecionada preenche a combo dimensão, neste caso o selectedValue pega o valor correto da empresa selecionada e pega o valor 0 para a dimensão(ou seja não pega o valor selecionado), este é o primeiro caso e ocorre erro. Já em um outro relatório não tenho o filtro empresa filtrando dimensão, ou seja, a dimensão é carregada direto e neste caso o valor selecionado na dimensão é pego corretamente.

Vamos ao código que dá erro:

Componentes criados Empresa e Dimensão:

<asp:Label ID="lblEmpresas" runat="server" ClientIDMode="Static">Empresa:</asp:Label>
<asp:DropDownList ID="ddlFiltroEmpresa" runat="server" ClientIDMode="Static" onChange="javascript:carregaFiltros();">
</asp:DropDownList>
<asp:Label ID="lblDimensoes" runat="server" ClientIDMode="Static">Dimensão: <asp:DropDownList ID="ddlFiltroDimensao" runat="server" ClientIDMode="Static" onChange="javascript:carregaAspectoFiltro();carregaIndicadorFiltro();">

Funções JavaScript chamadas:

function carregaFiltros() { if ($(''#ddlFiltroEmpresa'').val() != null) { carregaDimensaoFiltro(); }

carregaAspectoFiltro();
carregaIndicadorFiltro();
}

function carregaDimensaoFiltro() {

if ($(''#ddlFiltroEmpresa'').val() == null) {
empresa = codEmpresaSelecionada;
}
else {
empresa = $(''#ddlFiltroEmpresa'').val();
}

$.ajax({
type: ''GET'',
url: ''frmRelatorioFinal.aspx/carregaComboDimensaoComFiltro'',
contentType: ''application/json; charset=utf-8'',
data: {
codEmpresa: empresa,
codCiclo: $(''#ddlCiclo'').val()
},
success: function (response) {
$(''#ddlFiltroDimensao'').empty();

response.d.forEach(function (dimensao) {
addItem(dimensao.codigo, dimensao.descricao, "ddlFiltroDimensao");
});

addItem(0, "Todos", "ddlFiltroDimensao");


$(''#ddlFiltroDimensao option[value=0]'').attr(''selected'', ''selected'');

},
error: function (error) {
console.log(error);
alert(error + "erro carregaAspectoDimensao");
}
});
}
O erro ocorre do lado do servidor:

protected void funcaoGerarRelatorio() { Int32? filtroEmpresa, filtroDimensao, filtroAspecto, filtroIndicador;

filtroEmpresa = getFiltroDDL(ddlFiltroEmpresa.SelectedValue);
// O erro ocorre na linha abaixo apenas quando tenho que selecionar a empresa, pois esta filtra as dimensões. Aqui é passado o valor 0 para o SelectedValue ( da dimensão, a empresa o valor é pego direitinho)como se não tivesse selecionado nada. Do lado cliente pego o valor correto da dimensão e do lado servidor pego 0
// O mais impressionante que quando tenho um relatório que não tem a combo empresa , ou seja, é preenchida a combo dimensão sem filtro, neste caso o código entra nesta mesma função sendo que pega o valor correto selecionado na combo dimensão e depois filtra um outro combo, mas os valores são passados corretamente.

filtroDimensao = getFiltroDDL(ddlFiltroDimensao.SelectedValue);


//Acrescentado para teste
int cboIndex = ddlFiltroDimensao.SelectedIndex;
string strId = ddlFiltroDimensao.Items[cboIndex].ToString();
//fim do teste


filtroAspecto = getFiltroDDL(ddlFiltroAspecto.SelectedValue);
filtroIndicador = getFiltroDDL(ddlFiltroIndicador.SelectedValue);

Na minha opinião como depurando do lado cliente pego corretamente o código da dimensão e no servidor pego 0 como se nada tivesse sido selecionado, parece ser algum problema de atualização.
Desde já agradeço a ajuda.

Flávia
Flavia Lares

Flavia Lares

Curtidas 0
POSTAR