Composant personnalisé interception d'évenement click

Soyez le premier à donner votre avis sur cette source.

Vue 7 823 fois - Téléchargée 238 fois

Description

Composant personnalisé pour l'upload de fichier

ça évite d'avoir à se retaper le code sur chaque page on y gagne pas mal de temp

Source / Exemple :


Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.IO

<DefaultProperty("Text"), _
ToolboxData("<{0}:Upload runat=server></{0}:Upload>"), _
Description("The description for this confirm button")> _
Public Class Upload

    Inherits System.Web.UI.WebControls.WebControl

    Implements INamingContainer

    Dim strDossierUpload As String
    Dim strIdForm As String

    Dim InputFile As New HtmlInputFile

    '///////////////////
    ' Dossier d'upload
    '///////////////////
    <Bindable(True), Category("Divers"), DefaultValue(""), Description("Dossier ou va être uploader le fichier")> _
    Property DossierUpload() As String

        Get

            Return strDossierUpload

        End Get

        Set(ByVal Value As String)

            strDossierUpload = Value

        End Set

    End Property

    '************************
    '///   Id Formulaire  ///
    '************************
    <Bindable(True), Category("Divers"), DefaultValue("Form2"), Description("Nom de l'ID du tag formulaire")> _
    Property IdFormulaire() As String

        Get

            Return strIdForm

        End Get

        Set(ByVal Value As String)

            strIdForm = Value

        End Set

    End Property

    Private Sub btUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) 

        '**********************************************
        '///    Upload le fichier sur le server     ///
        '**********************************************
        Dim cheminAppli As String = Page.Request.PhysicalPath
        Dim nomPage As String = Path.GetFileName(Page.Request.PhysicalPath)
        Dim lng As Integer = cheminAppli.Length - nomPage.Length
        cheminAppli = Left(cheminAppli, lng)
        cheminAppli &= strDossierUpload

        Dim fichier As String

        If Not (InputFile.PostedFile Is Nothing) Then
            Try

                Dim postedFile = InputFile.PostedFile
                Dim filename As String = Path.GetFileName(postedFile.FileName)
                Dim contentType As String = postedFile.ContentType
                Dim contentLength As Integer = postedFile.ContentLength
                fichier = cheminAppli & "\" & filename
                postedFile.SaveAs(fichier)

            Catch exc As Exception

                'LbErreur.Text = "Upload non réaliser"

            End Try

        End If

    End Sub

    'créer les sous controls
    Protected Overrides Sub CreateChildControls()

        Controls.Clear()
        'Init btUpload
        Dim btUpload As New HtmlInputButton("button")
        btUpload.ID = "btUpload"
        btUpload.Value = "btUpload" 'Upload

        btUpload.Value = "btUpload" 'Upload

        AddHandler btUpload.ServerClick, AddressOf btUpload_Click

        Controls.Add(btUpload)

        'Init InputFile
        InputFile.ID = "uploadedFile"
        InputFile.EnableViewState = True
        InputFile.Name = "uploadedFile"

        Controls.Add(InputFile)

    End Sub

End Class

Conclusion :


Voila ça marche ;) vous ajoutez la dll du composant dans votre bin vous l'appeler dans votre page, vous la paramétrez et c'est finit :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
2 mai 2005

si ça intéresse j'ai aussi fait un composant pour faire des graphs Courbes et histogrammes entiérement paramétrable couleur taille ect.. on l'implémente en lui envoyant un dataset j'en ai fait aussi un autre avec un graph en camembert mais j'ai un petit probléme avec le calcul de l'angle de l'ellipse :(
Messages postés
4
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
2 mai 2005

oki :) tu as raisons c'est vrai
Messages postés
113
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
11 février 2008

Constructif, mais il avait pas compris que l'interet de la partie sources n'etait pas d'avoir des resolutions de probleme, mais de fournir a tous un compsant (ou autre ;)) fonctionnel.
La partie FORUM (qui est fort bien faite d'ailleurs, merci NIX) est la pour ca !!!

A bon entendeur ... Mais je teste ca des que possible
Le code a l'air clair en tout cas
Messages postés
4
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
2 mai 2005

pour capucinno l'intéret c'est que maintenant ça marche ;) merci encore à chris 81 qui à était construtif lui :)
Messages postés
4
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
2 mai 2005

merci chris81 si j'arrive à faire marcher ça je post la solution
Afficher les 7 commentaires

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.