Ich habe eine Listenansicht mit einem HyperLink-Steuerelement innerhalb der ItemTemplate. Ich möchte den Link anzeigen, wenn ein zurückgegebener Wert 0 (falsch) ist, und den Link nicht anzeigen, wenn es 1 (wahr) ist.
Bisher habe ich das:
%Vor%... aber dies macht die Ausnahme 'Angegebener Cast ist nicht gültig'.
Beispiele, die ich woanders gesehen habe, sollten funktionieren. Ich kann bestätigen, dass die gesperrte Spalte nur 0 oder 1 (von SQL Server) zurückgibt - sicherlich sollten diese leicht von Bit / Int in Boole umgewandelt werden?
Wenn Locked ein Int ist, sollten Sie Folgendes tun:
%Vor%Aber dann sollte das auch funktionieren, also gibt es True zurück wenn Locked & gt; 0
%Vor% Egal, es wird erwähnt, dass Locked 0 oder 1 enthält. Es ist noch ein INT , das aus irgendeinem Grund Werte & gt; 1. Daher finde ich es gut, den Check auf == 0
statt == 1
zu machen. Wir wissen nicht, wofür Locked
verwendet wird und in Zukunft könnte sich das Design ändern, so dass Locked
einen Wert & gt; 1.
SQL ist eine seltsame Welt, in der Bits drei Zustände 0, 1 und null haben können!
Das bedeutet also, dass Eval("Locked")
ein booler Typ ist, bei dem eine Nullable ausgeführt werden kann, und nicht ein einfacher bool
Eine Umwandlung in bool ist nicht gültig, wenn der Bitwert null ist. Sie müssen dies zuerst überprüfen:
Dies setzt voraus, dass null zu false zugeordnet werden sollte.
Tags und Links sql-server c# asp.net eval casting