Pergunta

Eu tenho um ASP.NET webform que, além de outros controles, tem uma caixa de texto para inserir um valor, uma caixa de texto para valores de exibição, um dropdownlistbox, e um botão de pesquisa. Eu estou usando o código a seguir para os resultados de pesquisa de exibição:

if (TextBox3.text == DropDownList3.Items.FindByText(TextBox3.Text).Value) 
{
  etc... 
}

O DDL3 obtém seus valores a partir de um DataTable, e o valor inserido em TextBox3 deve corresponder a um dos valores DDL3 para exibir os resultados da pesquisa após o botão de busca é clicado. O erro NullReferenceException ocorre quando o valor TextBox3 é nulo ou não corresponde a nenhum valor em DDL3. Esta é razoável; no entanto, passei algumas horas tentando lidar com esse erro e eu não consigo descobrir como fazê-lo. Tentei adicionar mais "se" declarações, tais como "se TextBox3 == null, etc ...;. No entanto, sem sucesso Como devo mudar o acima if para compensar um valor nulo ou um valor errado?

Obrigado,

DFM

Foi útil?

Solução

Tente usar um try ... catch nessa exceção:

try {
    TextBox3.text = DropDownList3.Items.FindByText(TextBox3.Text).Value
} catch (NullReferenceException ex) {
    TextBox3.text = "(none)";
}

Outras dicas

Você deve verificar para ver se o item existe na lista antes de verificar o seu valor.

if (DropDownList3.Items.FindByText(TextBox3.Text) != null)
{
   // ...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top