检查 ascx 文件中的评估网格值

问题描述

我正在尝试根据在网格中选择的值修改 ASCX 文件中的文本。此语法不起作用。

 <p>
 The letter should be <%#If(DataBinder.Eval(Container.DataItem,"Code") == "A" Then A Else B)%>
 </p>

这应该呈现为“字母应该是 A”或“字母应该是 B”。这可以动态完成吗?网格在同一个 ascx 页面上。

解决方法

好吧,如果该标记要在网格视图中?

那么您仍然需要对该列进行模板化。

所以,这样说:

          <asp:TemplateField HeaderText="test column">
              <ItemTemplate>
                  <p>
                      <%# IIf(Eval("City") = "Edmonton","E",Eval("City")) %>
                  </p>
              </ItemTemplate>
          </asp:TemplateField>

因此,如果数据(城市列)=“埃德蒙顿”,则显示“E”,否则显示值。

这不是代码 - 但必须是合法的单个 VB 表达式。

因此,if() 或 iif() 是 vb.net 函数 - 它们都是相同的 - 并且在您使用该函数时没有“then”或“else”。