0

我有这个 aspx 代码:

<asp:TemplateField HeaderText="Name"  SortExpression="Firmierung">
   <ItemTemplate>
      <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
   </ItemTemplate>
</asp:TemplateField>

我想添加一个 if 条件,以便可以将操作数 + 与 Text 一起使用,如下所示:

<asp:TemplateField HeaderText="Name"  SortExpression="Firmierung">
    <ItemTemplate>
        <% if(Condition is true) { %>
           <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") + ("Active") %>' />
        <% } else { %>
           <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
        <% } %> 
    </ItemTemplate>
</asp:TemplateField>

在这种情况下,我不知道如何使用操作数 + 。任何帮助表示赞赏。谢谢!

4

2 回答 2

0

你不能用Bind. 虽然Eval你可以用它添加一些 C# 代码,但Bind它是不可能的。Eval实际上是一个方法调用,但Bind只是框架转换为某些绑定代码的声明,其格式必须是Bind("FieldName")(您可以添加格式)。

Hyperlink Text客户端不可编辑该属性,因此Eval应该足够了,您可以将其写在一行中。

<asp:HyperLink ID="HyperLink" runat="server" 
      NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' 
      Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' />
于 2012-09-20T15:16:46.193 回答
0

试试这个

Text='<%# String.Format({0}{1},Eval("Name"),Eval("Active")) %>' 

或者

Text='<%# String.Format({0}{1},Bind("Name"),Bind("Active")) %>'

如需更多帮助,请访问链接:

带有 NavigateUrl 和 Eval() 的超链接。错误在哪里?

于 2012-09-20T16:33:28.747 回答