在MArkup中编写代码

时间:2009-12-04 14:54:44

标签: c# .net asp.net visual-studio

我在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>
  <%} %>

我怎样才能做到这一点?

3 个答案:

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

This related answer may help