J'ai un peu de code que j'ai commencé à gérer, et il commence à échouer en raison de données manquantes dans la base de données. Ce cas pourrait se produire à l'avenir, donc je voudrais gérer gracieusement les nulls dans le frontend.Test de null, inline, sur un appel ASP.net Bind()
Voici le code actuel:
<asp:DropDownList ID="ddlContact" runat="server"
SelectedIndex='<%# Bind("contactInfo") == null ? "" : Bind("contactInfo") %>'>
Il ne semble pas avoir d'effet sur elle, et la page jette encore un NullReferenceException. Il doit être un Bind() en raison de l'exigence de liaison de données bidirectionnelle, donc je ne peux pas utiliser Eval(). Des idées? J'ai essayé d'utiliser l'opérateur null-coallescing "??" mais cela me donne une erreur de compilation indiquant que Bind() n'existe pas dans le contexte actuel. Cela pourrait ressembler à ceci:
<asp:DropDownList ID="ddlContact" runat="server"
SelectedIndex='<%# Bind("contactInfo") ?? string.Empty %>'>
Merci, j'avais vu ce deuxième lien, mais je n'ai pas trouvé ce que je cherchais. Il traitait principalement Eval() et pas Bind(), et pour une raison quelconque, il y a une différence dans la façon dont les nulls sont gérés entre eux. – Carl
En ce qui concerne le premier lien, dès que j'ai entouré Bind entre parenthèses, j'ai reçu l'erreur de compilation "La liaison n'existe pas dans ce contexte". Si étrange. – Carl
Carl: Je pense que vous ne le faites pas correctement. Vous devez traiter la valeur liée en utilisant quelque chose comme une méthode d'événement dans la page code-behind. Là, vous pouvez vérifier si la valeur de contactInfo est nulle, puis affecter une valeur appropriée à SelectedIndex. –