Asp.net - custom web control renvoyant le contenu d'un fichier de type texte

Contenu du snippet

Dans le même esprit que la source précédente :
- http://www.aspfr.com/code.aspx?ID=25174

Voila un exemple de Custom Web Control permettant de renvoyer dans votre page ASPX (ou User Control ASCX) le contenu d'un fichier Texte sans aucune transformation.
Je l'utilise pour intégrer des page HTML dans un site ASP.NET sans les modifier.

Source / Exemple :


'**********************************************************************************
' $Archive: $ 
' $Author:  $ 
' $Date: $  $Revision: $
'  Description : CustomWebControl permettant de renvoyer le flux d'un fichier HTML 
'       ou autre
' *********************************************************************************

Imports System.ComponentModel
Imports System.Web.UI
Imports System.IO

''' -----------------------------------------------------------------------------
''' Project   : DotNetSysInfo
''' Class   : HTMLExtractCustomControl
''' 
''' -----------------------------------------------------------------------------
''' <summary>
''' CustomWebControl permettant de renvoyer le flux d'un fichier HTML ou autre
''' </summary>
''' <remarks>
''' </remarks>
''' <history>
'''   [moi]  04/08/2004  Created
''' </history>
''' -----------------------------------------------------------------------------
<DefaultProperty("Text"), ToolboxData("<{0}:HTMLExtractCustomControl runat=server></{0}:HTMLExtractCustomControl>")> Public Class HTMLExtractCustomControl
    Inherits System.Web.UI.WebControls.WebControl

    Dim _FileName As String = ""
    Dim _FilePath As String = ""

#Region "Liste des Propriétés"

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Nom Complêt du fichier à renvoyer
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[ROMELAFA]	06/08/2004	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    <Bindable(True), Category("Appearance"), DefaultValue("")> Property [FileName]() As String
        Get
            Return _FileName
        End Get

        Set(ByVal Value As String)
            _FileName = Value
        End Set
    End Property

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Sous-Répertoire IIS ou se trouve le fichier
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[ROMELAFA]	06/08/2004	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    <Bindable(True), Category("Appearance"), DefaultValue("")> Property [FilePath]() As String
        Get
            Return _FilePath
        End Get

        Set(ByVal Value As String)
            _FilePath = Value
        End Set
    End Property

#End Region

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Sortie envoyée par le WebControl lors de son placement dans la page
    ''' </summary>
    ''' <param name="output"></param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[ROMELAFA]	06/08/2004	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

        Dim Temp As New System.Text.StringBuilder
        'Chemin d'accès de la page à insérer
        Dim CheminComplet As String = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) & [FilePath] & [FileName]

        'On lit la page 
        Dim objReader As New StreamReader(CheminComplet)
        Dim sLine As String = ""
        Dim arrText As New ArrayList

        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()

        For Each sLine In arrText
            Temp.Append(Trim(sLine))
        Next

        output.Write(Temp.ToString)

    End Sub

    ' -----------------------------------------------------
End Class

' -------------------- UTILISATION DU CONTROL --------------------------
' Directement dans la page ASPX :

...
<%@ Register TagPrefix="cc1" Namespace="DotNetSysInfo" Assembly="DotNetSysInfo" %>
<cc1:HTMLExtractCustomControl id="HTMLExtractCustomControl1" runat="server" FileName="VotreFichier.html"
	FilePath="./LeSousRepertoireHTML/"></cc1:HTMLExtractCustomControl>
...

' -------------------------------------------------------------------

Conclusion :


Bon coding

Romelard Fabrice (Alias F___).

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.