ASP.Net bedingte databinding
<% if(Convert.ToInt32(Eval("NbrOrders"))>=Config.MAX_ENQUIRY_SALES) { %>
...
<% } else { %>
...
<% } %>
Gibt mir eine InvalidOperationException? Wie Schreibe ich eine bedingte html-Generierung in ASP?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung einer inline-Anweisung als John_ Staaten, oder erstellen Sie eine Funktion in Ihrem code dahinter führt die Logik erforderlich.
Dann verwenden Sie diese wie folgt
EDIT: ich habe gerade gelesen, einen Kommentar auf einem anderen post, dass die Staaten, die Sie wollen, um andere HTML-abhängig von diesem Ergebnis. In diesem Fall, können Sie versuchen, mit den Sichtbaren Flagge ein Platzhalter mit dem code. Wie:
Ich bin nicht sicher, dass Sie hinzufügen können, Klammern für die bedingte Bindung, ich weiß nur einen Weg, es zu tun ist mit einer inline-Anweisung etwa so:
Das problem mit @Robin Day, die Antwort ist, dass der folgende code schlägt fehl, wenn Sie datengebundene Kinder, die möglicherweise oder möglicherweise nicht über Daten verfügen, den aktuellen Stand gegeben, was Sie Rendern. Manchmal ist es schwierig zu manövrieren, um null-Werte zulässt Datenbindung code wenn Sie eine komplexe objektgraphen.
Betrachten Sie zum Beispiel:
Wenn
VisibleCondition()
zurückfalse
, untergeordnete Steuerelemente noch genannt, bekommen mitDataBind()
was dazu führen kannNullReferenceException
im Beispiel oben.Hier ist ein besserer Ansatz, IMHO:
Wird und in der folgenden Weise:
Ich kann nicht finden, etwas falsch in deinen Sätzen, aber vergleichende Sie zwischen Config.MAX_ENQUIRY_SALES und Konvertieren.ToInt32(Eval("NbrOrders")). Sind diese Betreiber von der gleichen Art? Kann man den Typ eines jeden in Ihre web-Seite?
if/else-Blöcke arbeiten in ASP .NET, wie Sie es von Ihnen erwarten. Das folgende funktioniert Prima.
Vielleicht bedingte Logik in deinem Beispiel ist das werfen einer exception?