2016-01-31 1 views
0

Мне нужно использовать оператор тройной вложенности if с использованием выражения привязки веб-форм ASP.NET. Я попытался следующие:Запись нескольких операторов If с использованием выражения привязки ASP.NET

<asp:TemplateField HeaderText="Price"> 
             <ItemTemplate> 
              $ <%# Convert.ToBoolean(Eval("TierPricing")) ? Eval("PraviTier") + " per feet" : Convert.ToBoolean(Eval("IsPricingIndex")) ? Eval("ProductTierPrice") + " per feet" : Convert.ToString(Eval("SubCategoryName"))=="Custom kits" ? Eval("Price") + " per feet" : Eval("Price") + " per package" %></p> 
             </ItemTemplate> 
            </asp:TemplateField> 

Проблема возникает с первым, если заявление, его не записывать значение, я хочу, чтобы это написать ...:/Может ли кто-нибудь помочь мне, как отформатировать это, если заявление правильно ??

Eval ("PraviTier") должен написать - 1,5 Eval ("ProductTierPrice") должен написать - 1.25

Вместо Eval ("PraviTier") пишет значение 1.25 ... почему это ???

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

enter image description here

Любые намеки ??

P.S. Как будто первый оператор If полностью игнорируется ?!

Редактировать: Я проверил, что возвращает хранимая процедура ... Eval («TierPricing») имеет значение true в базе данных ... так что может быть проблема здесь? :/

+0

* его не записывать значение, которое я хочу написать * Пожалуйста, будьте более ясны. Что вы ожидаете, и что на самом деле происходит? –

+0

Ваш код * выглядит * правильным. Можете ли вы создать [mcve] вашего вложенного выражения (в идеале без ASP.NET и с конкретными значениями истинности), который воспроизводит проблему? (Подсказка: если ваш пример с игрушкой работает, постепенно удаляйте разницу между примером игрушки и вашим реальным кодом, пока не выясните, что вызывает проблему. Затем вернитесь и сообщите нам.) – Heinzi

+0

Эй, ребята, я обновил свой первый пост , Пожалуйста, проверьте это? – perkes456

ответ

0

Хорошо, я решил загадку .... Видимо, это правильный путь, чтобы сделать логику, что мне нужно:

<asp:TemplateField HeaderText="Price"> 
             <ItemTemplate> 
              <%# Eval("PraviTier") %> 
              $ <%# Convert.ToBoolean(Eval("IsPricingIndex")) ? Eval("PraviTier") + " per feet" : Convert.ToBoolean(Eval("TierPricing")) ? Eval("ProductTierPrice") + " per feet" : Convert.ToString(Eval("SubCategoryName"))=="Custom kits" ? Eval("Price") + " per feet" : Eval("Price") + " per package" %></p> 
             </ItemTemplate> 
            </asp:TemplateField> 

Этот ответ может служить в качестве руководства для тех, кто, возможно, потребуется вложенные операторы if, использующие выражения привязки asp.net в будущем ... :-)