0

我需要使用使用 ASP.NET Web 表单绑定表达式的三重嵌套 if 语句。我尝试了以下方法:

<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>

问题出现在第一个 if 语句中,它没有写出我想要它写的值......:/有人可以帮我解决如何正确格式化这个 if 语句吗?

Eval("PraviTier") 应该写 - 1.5 Eval("ProductTierPrice") 应该写 - 1.25

取而代之的是 Eval("PraviTier") 正在写入 1.25 值...为什么会这样???

这是一张显示我的意思的图片:

在此处输入图像描述

有什么提示吗??

PS它好像第一个If语句被完全忽略了?!

编辑:我检查了存储过程返回什么... Eval("TierPricing") 在数据库中设置为 true ... 那么这里可能是什么问题?:/

4

1 回答 1

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>

对于将来可能需要使用 asp.net 绑定表达式的嵌套 if 语句的人,此答案可以作为指南... :-)

于 2016-01-31T21:27:35.430 回答