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

27/09/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?
[code]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;
}
}[/code/

Pjava