【问题标题】:Operand "+" with Bind/Eval in aspx files在 aspx 文件中带有 Bind/Eval 的操作数“+”
【发布时间】:2012-09-12 23:51:16
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net web-applications


    【解决方案1】:

    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") : "") %>' />
    

    【讨论】:

    • 所以,根据您的建议,我确实喜欢: Text='' /> 我收到此错误:名称 'Bind' 在当前上下文中不存在。有什么问题吗?
    • 你不能这样做。您不能将代码添加到 Bind。你只能使用Eval。你到底想做什么?
    • @Magnus,这不是我的答案。我正在回滚。如果您不这么认为,请发表评论或写下您自己的答案。
    • @AmiramKorach 对此感到抱歉,认为是语法错误。
    • @AmiramKorach:我解决了这个问题,我的答案在上面。谢谢你的帮助 :) 。我想要的是检查这个名称是否是活动的(布尔),然后我打印超链接的文本是名称(活动的),否则,文本只是名称。 :)
    【解决方案2】:

    试试这个

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

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

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

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

    【讨论】:

    • 您好,谢谢您的回答,这正是我想要的,但您的回答中有一点错误语法,我们需要 {0}{1} 的“”。所以,这是我的代码,就像一个魅力: Text=''
    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2010-09-20
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多