2013-05-13 3 views
1

Я получаю следующее сообщение об ошибке. Помогите мнеОшибка: Указанный прилив недействителен.

Line 90:     <asp:TemplateField HeaderText="Notes"> 
Line 91:      <ItemTemplate> 
Line 92:       <asp:ImageButton ID="btnShowPopup" Text="Notes" Visible='<%#Eval("notesVisible")%>' runat="server" ImageUrl="~/Images/Imgs.jpg" 
Line 93:        OnClick="Popup" /> 
Line 94:      </ItemTemplate> 
+1

Где вы получите сообщение об ошибке? Какой тип 'notesVisible'? –

ответ

2

Какой тип notesVisible? Если это не bool но int:

Visible='<%#((int)Eval("notesVisible")) == 1 ? true : false%>' 

Edit: Так как вы уже упоминал, что есть обнуляет:

Visible='<%#Eval("notesVisible") == DBNull.Value ? false : Convert.ToBoolean(Eval("notesVisible"))%> 
+0

Привет Тим ​​в базе данных типа бит. – Valley

+0

@ user2356985: Поскольку 'bit' также является числовым типом, вы можете попробовать мой подход. Или вам нужно использовать «DataAdapter» или ORM-Mapper, который автоматически переводит его в «bool». –

+0

Привет, Тим, я использовал ваш подход. Он по-прежнему показывает ту же ошибку. – Valley

0

вам необходимо установить видимое свойство с булевой юдолью «истина» или " ложь»

Eval ("notesVisible") является объектом не булево

Пожалуйста, используйте I t как удар

Visible='<%#(Eval("notesVisible").ToString()=="somthing"?true:false)%>' 

Надеюсь, это вам поможет.

+0

Hi Pradeep, в базе данных NotesVisible type бит. – Valley

+0

бит означает 0 или 1, а затем измените его на Visible = '<% # (Eval ("notesVisible"). ToString() == "1"? True: false)%>' –

+0

Почему вы изменили бит на строку для сравнения? И действительно, зачем добавлять '? True: false' после вашего логического? Разве это не лишнее? – Chris

0

использовать видимый = '<% # bool.Parse (Eval ("notesVisible"). ToString())%>'

Смежные вопросы