2010-09-01 10 views
7

Ich habe ein bisschen Code, den ich zu verwalten begann, und es hat begonnen, aufgrund einiger Daten in der Datenbank fehlschlagen. Dieser Fall könnte in Zukunft passieren, also würde ich gerne mit den Nullen im Frontend umgehen.Testen auf Null, Inline, auf einem ASP.net Bind() -Aufruf

Hier ist der aktuelle Code:

<asp:DropDownList ID="ddlContact" runat="server" 
    SelectedIndex='<%# Bind("contactInfo") == null ? "" : Bind("contactInfo") %>'> 

Es scheint nicht auf sie beeinflussen zu haben, und die Seite wirft noch eine Nullreferenceexception. Aufgrund der bidirektionalen Datenbindungsanforderung muss es ein Bind() sein, so dass ich Eval() nicht verwenden kann. Irgendwelche Ideen?

Ich habe versucht, den Null-Coalescering-Operator "??" aber das gibt mir einen Kompilierungsfehler, der besagt, dass Bind() im aktuellen Kontext nicht existiert. Das könnte würde wie folgt aussehen:

<asp:DropDownList ID="ddlContact" runat="server" 
    SelectedIndex='<%# Bind("contactInfo") ?? string.Empty %>'> 

Antwort

2

überprüfen diese:

Bind NULL

Dieses sollten Sie mehr Ideen geben:

How to handle null values in DataBinder.Eval()

Handling Null Database Values Using Data Source Controls

Wenn die AppendDataBoundItems-Eigenschaft auf true festgelegt ist, wird das DropDownList-Steuerelement mit statischen Elementen und Daten aus der Datenquelle gefüllt. Das statische Listenelement, das dem DropDownList-Steuerelement hinzugefügt wird, hat die Value-Eigenschaft auf eine leere Zeichenfolge festgelegt. Damit ist ein Datenelement, das einen Nullwert enthält, an das statische Listenelement gebunden.

+0

Danke, ich habe diesen zweiten Link gesehen, aber nicht gefunden, wonach ich gesucht habe. Es handelte sich hauptsächlich um Eval() und nicht um Bind(), und aus irgendeinem Grund gibt es einen Unterschied darin, wie Nullen zwischen ihnen gehandhabt werden. – Carl

+0

Soweit der erste Link, sobald ich Bind in Klammern umgab, bekam ich den Kompilierungsfehler "Bind nicht in diesem Kontext existiert". So seltsam. – Carl

+0

Carl: Ich denke, du machst es nicht richtig. Sie sollten den gebundenen Wert mit einer Ereignismethode auf der Code-Behind-Seite behandeln. Dort können Sie überprüfen, ob der Wert von contactInfo null ist, und dann einen geeigneten Wert für SelectedIndex zuweisen. –

Verwandte Themen