【问题标题】:Concatenate two or more strings in inline code ASP.NET在内联代码 ASP.NET 中连接两个或多个字符串
【发布时间】:2011-10-05 23:30:32
【问题描述】:

我正在尝试根据条件在名称旁边放置一个 *。

我的代码:

 <asp:Label ID="lblOne" runat="server"   Text= '<%# Eval("name") + ((Eval("StatusId").Equals(0) && Eval("assignfilename") == null) ? " *" : "") %>' > </asp:Label>

谢谢

BB

【问题讨论】:

  • 您看到的输出或错误是什么?

标签: asp.net inline-code


【解决方案1】:

我对内联代码不是很熟悉,而且您的代码似乎有点复杂。 但我还需要连接一个 Eval("record") 和一个文本。因此,要回答有关如何连接的问题,& 符号对我有用。

'<%# Eval("name") & " *" %>'

希望这对任何人都有帮助。

【讨论】:

    【解决方案2】:

    如果您要突破内联代码可以轻松处理的极限,您总是可以编写一个函数来代替。然后您可以执行以下操作:

     <asp:Label ID="lblOne" runat="server"   Text= '<%# EmitSomeText(Eval("name"), Eval("StatusId"), Eval("assignfilename")) %>' />
    

    这使您可以将复杂的表达式分解为所需的多行,这可能不会那么尴尬。您可以在 CodeBehind 或任何其他类中使用函数。

    如果您要绑定到您有权访问的类,则可以添加只读属性。然后您可以执行类似 Eval("MyNewProperty") 的操作。

    我用它来展示我需要重复使用的格式。例如,Customer.CustomerFullName 可能会返回姓氏,第一个分隔为逗号(智能处理缺少一个或另一个或两者的情况)加上可选标题,因为也许我的客户是医疗人员,其中一些拥有博士学位和医学博士。

    【讨论】:

      【解决方案3】:

      对于简单的一次性场景,代码隐藏功能可以正常工作。

      您可能还想考虑将它们编码为基础对象中的属性。

      例如,如果生成的文本要在多个实例中使用,则需要使用 Eval 以不同的形式或控件多次编写函数。

      我会在数据对象上创建一个属性,例如NameWithStatusStar,那么你的label就可以直接绑定到property了,里面的代码是Eval("NameWithStatusStar")

      这比一系列表达式更具描述性和可重用性,而且更容易更改(例如添加另一个字段、更改公式等)

      【讨论】:

        【解决方案4】:

        你可以这样做:

        Text='<%#"CustomText "+Eval("Name")%>'
        

        【讨论】:

        • 如果您提供更多上下文会更有帮助。
        【解决方案5】:
        Text='<%#String.Concat(Eval("UserId"), Eval("Username")) %>'
        

        这在我的项目中对我有用。在这里找到它:

        Concatenate text with Eval

        【讨论】:

          【解决方案6】:
           Text='<%# string.Concat(Eval("FirstName"), " ", Eval("LastName"))%>'
          

          这在我的项目中对我有用。在这里找到它:

          Concatenate text with Eval

          【讨论】:

          • 请不要对多个问题发布相同的答案。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-05
          相关资源
          最近更新 更多