ASP .NET前pressions(内嵌标签)用的String.Format [英] ASP .NET expressions (inline tag) with String.Format

查看:84
本文介绍了ASP .NET前pressions(内嵌标签)用的String.Format的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道中庸之道是否有可能使用的String.Format 通过以下内嵌标签:

I was juste wondering if it was possible to use String.Format with the following inline tag :

<asp:RequiredFieldValidator ControlToValidate="tbTest" Text="<%$ Resources:ErrorMsg, E3032  %>" runat="server" />

像这样如此

<asp:RequiredFieldValidator ControlToValidate="tbTest" Text='<%= String.Format(<%$ Resources:ErrorMsg, E3032  %>, "Other Text to insert")' runat="server" />

我知道你不能这样做,但它只是为图片。

I know you can't do that but it's just for the picture.

TX

推荐答案

我结束了创建为此我自己的前$ ​​P $ pssion:

I ended up creating my own expression for this purpose :

web.config中:

web.config :

<expressionBuilders>
  <add expressionPrefix="CreerMsgErreur" type="MsgErreurs, App_Code" /> 
</expressionBuilders>

的.aspx:

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="tbdDateFin"
 CssClass="test" Text="<%$ CreerMsgErreur:E3033, insert, date %>"
 ErrorMessage="<%$ CreerMsgErreur:E3033, insert, date %>"
 runat="server" EnableClientScript="true" SetFocusOnError="true" />

的.vb:

Imports System
Imports System.CodeDom
Imports System.Linq
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.Compilation
Imports System.Web.UI

<ExpressionPrefix("Reflect")> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.LinkDemand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MsgErreurs
    Inherits ExpressionBuilder

    Public Overrides Function GetCodeExpression(ByVal entry As System.Web.UI.BoundPropertyEntry, ByVal parsedData As Object, ByVal context As System.Web.Compilation.ExpressionBuilderContext) As System.CodeDom.CodeExpression
        If parsedData IsNot Nothing Then
            Return New CodePrimitiveExpression(CType(parsedData, MsgErreursParse).ToString())
        End If

        Return New CodePrimitiveExpression("Erreur de l'expression")
    End Function

    Public Overrides Function ParseExpression(ByVal expression As String, ByVal propertyType As System.Type, ByVal context As System.Web.Compilation.ExpressionBuilderContext) As Object

        Dim leMsgErreur As MsgErreursParse = Nothing

        If Not String.IsNullOrEmpty(expression) Then
            leMsgErreur = New MsgErreursParse(expression)
        Else
            Throw New HttpException(String.Format("Message de l'expression MsgErreur vous devez entrer une expression."))
        End If

        Return leMsgErreur
    End Function

    Private Class MsgErreursParse
        Private mNoErreur As String
        Private mParametres As String

        Public Property NoErreur() As String
            Get
                Return mNoErreur
            End Get
            Set(ByVal value As String)
                mNoErreur = value
            End Set
        End Property

        Public Property Parametres() As String
            Get
                Return mParametres
            End Get
            Set(ByVal value As String)
                mParametres = value
            End Set
        End Property

        Public Sub New(ByVal parametres As String)
            Try
                mNoErreur = parametres.Substring(0, parametres.IndexOf(",")).Trim()
                mParametres = parametres.Substring(parametres.IndexOf(",") + 1).Trim()
            Catch ex As ArgumentOutOfRangeException
                mNoErreur = parametres
            Catch ex As Exception

            End Try

            If String.IsNullOrEmpty(mNoErreur) Then
                Throw New HttpException(String.Format("Message de l'expression MsgErreur : vous devez spécifier un code d'erreur ou les paramètres ne sont pas dans le bon format : {0}", parametres))
            End If
        End Sub

        Public Sub New(ByVal noErreur As String, ByVal parametres As String)
            mNoErreur = noErreur
            mParametres = parametres
        End Sub

        Public Overrides Function ToString() As String
            Try
                If String.IsNullOrEmpty(Parametres) Then
                    Return Convert.ToString(HttpContext.GetGlobalResourceObject("MsgErreurs", NoErreur), System.Globalization.CultureInfo.CurrentCulture)
                Else
                    Return String.Format(Convert.ToString(HttpContext.GetGlobalResourceObject("MsgErreurs", NoErreur), System.Globalization.CultureInfo.CurrentCulture), Parametres.Split(",").Select(Function(s) s.Trim()).ToArray())
                End If
            Catch ex As Exception
                Throw New HttpException(String.Format("Message de l'expression MsgErreur : impossible de créer le message d'erreur : NoErreur : {0}, Parametres : {1}", NoErreur, Parametres))
            End Try
        End Function
    End Class

End Class

这篇关于ASP .NET前pressions(内嵌标签)用的String.Format的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆