2

如何将资源程序集中的字符串连接到 asp:Label 控件的 Text 属性中的星号 (*)?

例如:

<asp:Label ID="someLabel" ... 
   Text="<%$ ExternalAssembly|FileName, resourceName %>*" runat="server".../>

最终结果是显示 'Name*'

谢谢

4

1 回答 1

1

引用服务器端函数以返回所需的字符串。

我道歉,但这将在 vb.net 中。但是,它是最少的代码,所以如果您需要的话,我认为将其转换为 C# 不会太难。

脚步

  1. 为标签控件创建 ASP.NET 标记。
  2. 在 text 属性中,插入函数的数据绑定表达式getAssembly()。示例:Text='<%# getAssembly("Fullname")%>'我们稍后将构建这个函数。另请注意,它接受一个参数来确定您需要关于程序集的哪些信息。另一个常见的错误是内联表达式没有使用单引号(因为双引号会与字符串参数冲突)。
  3. 将必要的命名空间导入SystemSystem.Reflection代码隐藏中。
  4. 在代码隐藏中创建函数getAssembly(ByVal InfoItem as String)(此函数的详细信息如下)。
  5. Sub Page_Load()在页面加载时将数据绑定到 assemblyLabel 控件中添加一行。

以下是每个步骤的详细代码:


ASP.NET 标记

<asp:Label ID="assemblyLabel" runat="server" Text='<%# getAssembly("Fullname")%>'></asp:Label>

代码隐藏中的功能

Public Function getAssembly(ByVal InfoItem As String) As String

Dim a As AssemblyName = Assembly.GetExecutingAssembly.GetName()

Select Case InfoItem
    Case "Name"
        Return a.Name
    Case "Fullname"
        Return a.FullName
    Case "Version"
        Return a.Version.ToString
    Case Else
        Return ""
    End Select

End Function

必要的进口:

Imports System
Imports System.Reflection

绑定Page_Load中的数据:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

assemblyLabel.DataBind()

End Sub

整个代码隐藏...

Imports System
Imports System.Reflection
Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        assemblyLabel.DataBind()

    End Sub

    Public Function getAssembly(ByVal InfoItem As String) As String

        Dim a As AssemblyName = Assembly.GetExecutingAssembly.GetName()

        Select Case InfoItem
            Case "Name"
                Return a.Name
            Case "Fullname"
                Return a.FullName
            Case "Version"
                Return a.Version.ToString
            Case Else
                Return ""
        End Select

    End Function


End Class
于 2013-07-23T16:18:24.523 回答