Array
(
)

Passar função que está no CodeBehind para Javascript

Pjava
   - 27 set 2013

Pessoal, tenho esse método para validar um botão se true ou false. O que está passando. Quando eu tenho o filtro por nota fiscal, me abre tres textbox. Como a validação está pelo code behind, eu posiciono o cursor no primeiro textbox e ele dá um postback e quando retorna do servidor, ele perde o foco. Aí tenho que dar outro click no mouse e se dou TAB ele vai para o próximo controle e acontece a mesma coisa. O mesmo para a última ComoboBox, que quando recebe o foco, ela abre e fecha e eu tenho que fazer outra vez, ou seja, abrir a combo para que seja escolhido o item. bem, a melhor forma de validar o botão eu acho ser por javascript, no browser. O botão tem ser validado assim:
Todos os combobox ter ItemIndex > 0(são tres) e todos os TextBox ser !string.IsNullOrEmpty(Textbox.Text). Deve-se programar um evento TextChanged deles, para que caso o usuário apague o conteúdo, o botão volte a ser enabled=false. Abaixo como está hoje. enFiltroPesquisa é um ENUM e _filtroSelecionado é uma var do tipo do ENUM(óbvio).
Como colocar isso tudo num JS?
#Código

private void bValidaBotao()
        {
            btnBuscar.Enabled = cmbOperadoraFiltro.SelectedIndex > 0 && cmbPesquisapor.SelectedIndex > 0 && cmbOpcao.SelectedIndex > 0;

            switch (_filtroSelecionado)
            {
                case enFiltroPesquisa.PeriodoLiberacao:
                    {
                        btnBuscar.Enabled &= txtDtEnvioDe.IsValid && txtDtEnvioAte.IsValid;
                        EscondeCamposData(false);
                        mostraPainel(false, false);
                    }
                    break;
                case enFiltroPesquisa.GuiaPrestador:
                    {
                        btnBuscar.Enabled &= !String.IsNullOrEmpty(txtNumero.Text);
                        EscondeCamposData(true);
                        mostraPainel(false, false);
                    }
                    break;
                case enFiltroPesquisa.DataPagamento:
                    {
                        btnBuscar.Enabled &= cmbDtMesPagamento.SelectedIndex > 0 && cmbDtDiaPagamento.SelectedIndex > 0;
                        EscondeCamposData(true);
                        mostraPainel(false,false);
                    }
                    break;
                case enFiltroPesquisa.Lote:
                    {
                        btnBuscar.Enabled &= !String.IsNullOrEmpty(txtNumero.Text);
                        EscondeCamposData(true);
                        mostraPainel(false, false);
                    }
                    break;
                case enFiltroPesquisa.Protocolo:
                    {
                        btnBuscar.Enabled &= !String.IsNullOrEmpty(txtNumero.Text);
                        EscondeCamposData(true);
                        mostraPainel(false, false);
                    }
                    break;
                case enFiltroPesquisa.NotaFiscal:
                    {
                        btnBuscar.Enabled &= (!String.IsNullOrEmpty(txtNumero.Text) && !String.IsNullOrEmpty(txtSerie.Text) && !String.IsNullOrEmpty(txtUnidade.Text));
                        EscondeCamposData(true);
                        mostraPainel(false, false);
                    }
                    break;
                case enFiltroPesquisa.Senha:
                    {
                        btnBuscar.Enabled &= !String.IsNullOrEmpty(txtNumero.Text);
                        EscondeCamposData(true);
                        mostraPainel(false, false);
                    }
                    break;
                default:
                    break;
            }
        }
/