Заявление панели asp.net - PullRequest
2 голосов
/ 19 декабря 2008

У меня проблемы с видимым атрибутом панели asp.net. По сути, у меня есть страница, которая вызывает таблицу базы данных и возвращает результаты в подробном представлении. Однако, некоторые из значений, которые возвращаются, являются нулевыми, и если это так, мне нужно скрыть изображение рядом с ним.

Я использую панель, чтобы определить, скрыть или показать изображение, но у меня возникают проблемы с утверждением:

visible = '<% # Eval ("addr1") <> DBNull.Value%>'

Я тоже пробовал:

visible = '<% # Eval ("addr1") <> DBNull.Value%>'

visible = '<% # IIf (Eval ("addr1") - это DbNull.Value, "False", "True")%>'

Когда я использую их, я получаю ошибку:

Сообщение об ошибке компилятора: CS1026:) ожидается

Любая помощь в том, какой должен быть синтаксис, была бы великолепна.

Спасибо

Ответы [ 6 ]

6 голосов
/ 19 декабря 2008

Ваш синтаксис говорит VB.NET, но ваш компилятор говорит C # (ошибка компилятора CS *). Так как я больше доверяю вашему компилятору:

Visible='<%# Eval("addr1") != DBNull.Value %>'
2 голосов
/ 19 декабря 2008

Я ненавижу привязку данных (по многим причинам, в том числе и к этому), когда у меня есть слишком сложное выражение для привязки. Я заявляю об этом в коде и призываю сделать грязную работу.

Что-то вроде

> visible='<%# GetIsVisible(Eval("addr1"))  %>'

Затем вы определяете свой метод GetIsVisible, чтобы принимать один объект в качестве параметра. Я оставлю это на ваше усмотрение, так как вы используете VB, и я, безусловно, убью вас.

Редактировать: только что заметил, что вы используете C # Если в C # вам нужно использовать оператор! =, В C # нет оператора <>.

> visible='<%# Eval("addr1") <> DBNull.Value %>'

должно быть что-то вроде

> visible='<%# Eval("addr1") != DBNull.Value %>'

Кроме того, я хотел бы просто использовать Convert.IsDBNull

> visible='<%# !Convert.IsDBNull(Eval("addr1")) %>'
0 голосов
/ 08 января 2009

Извините, что вернул старый поток, просто хотел сказать:

visible = '<% #! Convert.IsDBNull (Eval ("addr1"))%>'

это сработало - ЛЕГЕНДА

спасибо всем

0 голосов
/ 19 декабря 2008

Больше ударов в темноте, попробуйте это

visible="<%# IIf(Eval('addr1') Is DbNull.Value, 'False','True') %>"
0 голосов
/ 19 декабря 2008

Эмм ...

Это работает?

visible='<%= IIf(Eval("addr1") Is DbNull.Value, "False","True") %>'

Или у вас на самом деле точка с запятой в конце, например (у вас не должно быть BTW)

visible='<%# IIf(Eval("addr1") Is DbNull.Value, "False","True"); %>'
0 голосов
/ 19 декабря 2008

Try: visible = '<% # (Eval ("addr1") равен DbNull.Value? "False": "True")%>'

правильный синтаксис для iif (условие? Если true это значение: если false это значение), предполагая, что вы используете c #

...