操作数“+”与aspx文件中的Bind / Eval

时间:2012-09-20 15:10:24

标签: c# asp.net web-applications

我有这个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>

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

2 个答案:

答案 0 :(得分:0)

您无法使用Bind执行此操作。虽然使用Eval,您可以使用Bind添加一些C#代码,但这是不可能的。 Eval实际上是一个方法调用,但Bind只是一个由框架转换为某些绑定代码的声明,其格式必须是Bind("FieldName")(您可以添加格式)。 / p>

客户端无法编辑Hyperlink Text属性,因此Eval应该足够,您可以将其写入一行。

<asp:HyperLink ID="HyperLink" runat="server" 
      NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' 
      Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' />

答案 1 :(得分:0)

试试这个

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

OR

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

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

HyperLink with NavigateUrl with Eval(). Where is the mistake?