问题描述
我正在尝试根据在网格中选择的值修改 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”。