我在gridview中有一个模板字段,其中包含一个标签,我希望根据if语句改变其文本。以下当然不起作用,但这是我想要完成的。
<%if Eval("Address") != ""%>
<%{ %>
<ItemTemplate>
<asp:Label ID="Label18" nowrap="nowrap" runat="server" Text='<%# Eval("Address") + "<br>" + Eval("City") + "," + Eval("State") + " " + Eval("Zip1") + " " + Eval("Zip2") %>'></asp:Label>
</ItemTemplate>
<%} %>
我怎样才能做到这一点?
答案 0 :(得分:0)
这个怎么样?
<ItemTemplate>
<asp:Label ID="Label18" nowrap="nowrap" runat="server" Text='<%# Eval("Address") != String.Empty ? Eval("Address") + "<br>" + Eval("City") + "," + Eval("State") + " " + Eval("Zip1") + " " + Eval("Zip2") : String.Empty %>'></asp:Label>
</ItemTemplate>
答案 1 :(得分:0)
您可以在数据源上拥有DisplayAddress
属性 - 这是您想要的Address
连接或null /空白。
不知道你的网格如何绑定,我无法建议最好的方法。
答案 2 :(得分:0)
考虑在itemTemplate中添加占位符:
<ItemTemplate>
<asp:PlaceHolder ID="phAddress" runat="server" />
</ItemTemplate>
对于gridview,有一个OnRowDataBound
事件,您可以在其中构建新的asp:Label
或纯HTML。使用e.Row.DataItem
查找所需的地址详细信息。
然后,您可以将该标签或HTML字符串分配给phAddress
。