begin process at 2012 05 27 07:09:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > .NET 2.0: CONTRÔLE IMAGE VIEWER / UPLOADER

.NET 2.0: CONTRÔLE IMAGE VIEWER / UPLOADER


 Description

Cliquez pour voir la capture en taille normale
Ceci est un contrôle asp.net permettant: 1) de lister les images présentes dans un répertoire et de les afficher sous forme de diaporama 2) d'uploader une image dans ce même répertoire

Source

  • using System;
  • using System.Collections.Generic;
  • using System.Text;
  • using System.Web.UI.WebControls;
  • using System.IO;
  • namespace gldfdp.Web.UI
  • {
  • /// <summary>
  • /// An online Image Viewer
  • /// </summary>
  • public class ImageUploader : CompositeControl
  • {
  • /// <summary>
  • /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.
  • /// </summary>
  • protected override void CreateChildControls()
  • {
  • Controls.Clear();
  • CreateControlHierarchy();
  • ClearChildViewState();
  • }
  • private string _Titre = "Charger une image";
  • /// <summary>
  • /// Gets or sets the titre.
  • /// </summary>
  • /// <value>The titre.</value>
  • protected string Titre
  • {
  • get { return _Titre; }
  • set { _Titre = value; }
  • }
  • private string _ImageDirectory = "~/images";
  • /// <summary>
  • /// Gets or sets the image directory.
  • /// </summary>
  • /// <value>The image directory.</value>
  • public string ImageDirectory
  • {
  • get { return _ImageDirectory; }
  • set { _ImageDirectory = value; }
  • }
  • private FileUpload _fileUpload;
  • private Button _validate;
  • /// <summary>
  • /// Creates the control hierarchy.
  • /// </summary>
  • private void CreateControlHierarchy()
  • {
  • _fileUpload = new FileUpload();
  • this.Controls.Add(_fileUpload);
  • _validate = new Button();
  • _validate.Text = "Charger";
  • _validate.Click += new EventHandler(_validate_Click);
  • _validate.Style.Add("margin-left", "5px");
  • _validate.Style.Add("margin-right", "5px");
  • this.Controls.Add(_validate);
  • }
  • void _validate_Click(object sender, EventArgs e)
  • {
  • if (_fileUpload.PostedFile.ContentLength > 0)
  • {
  • _fileUpload.SaveAs(Path.Combine(Page.Server.MapPath(ImageDirectory), _fileUpload.FileName));
  • }
  • }
  • /// <summary>
  • /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl"></see> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter"></see> object, for display on the client.
  • /// </summary>
  • /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter"></see> that represents the output stream to render HTML content on the client.</param>
  • protected override void Render(System.Web.UI.HtmlTextWriter writer)
  • {
  • Page.ClientScript.RegisterStartupScript(Page.GetType(), "imageSelect", GetScript(), true);
  • writer.AddStyleAttribute("border", "solid 1px black");
  • writer.RenderBeginTag("div");
  • writer.RenderBeginTag("h3");
  • writer.Write("Liste des images déjà existantes");
  • writer.RenderEndTag();
  • writer.RenderBeginTag("table");
  • writer.RenderBeginTag("tr");
  • writer.RenderBeginTag("td");
  • writer.AddStyleAttribute("border", "solid 1px silver");
  • writer.AddStyleAttribute("width", "300px");
  • writer.AddStyleAttribute("height", "200px");
  • writer.AddStyleAttribute("margin", "5px");
  • writer.AddStyleAttribute("overflow", "hidden");
  • writer.AddStyleAttribute("text-align", "center");
  • writer.AddStyleAttribute("vertical-align", "middle");
  • writer.AddAttribute("id", "imgviewer");
  • writer.RenderBeginTag("div");
  • writer.RenderEndTag();
  • writer.RenderEndTag();//td
  • writer.RenderBeginTag("td");
  • writer.AddStyleAttribute("height", "200px");
  • writer.AddStyleAttribute("overflow-y", "scroll");
  • writer.AddStyleAttribute("width", "90px");
  • writer.RenderBeginTag("div");
  • writer.RenderBeginTag("table");
  • List<string> _files = new List<string>(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.jpg"));
  • _files.AddRange(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.gif"));
  • _files.AddRange(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.png"));
  • foreach (string _file in _files)
  • {
  • writer.RenderBeginTag("tr");
  • writer.RenderBeginTag("td");
  • writer.AddStyleAttribute("width", "64px");
  • writer.AddStyleAttribute("height", "64px");
  • writer.AddAttribute("onClick", "imageSelect(this)");
  • writer.AddAttribute("src", ResolveClientUrl(Path.Combine(ImageDirectory, (new FileInfo(_file)).Name)));
  • writer.RenderBeginTag("img");
  • writer.RenderEndTag();
  • writer.RenderEndTag();
  • writer.RenderEndTag();
  • }
  • writer.RenderEndTag();//table
  • writer.RenderEndTag();//td
  • writer.RenderEndTag();//tr
  • writer.RenderEndTag();//table
  • writer.RenderEndTag();//div
  • writer.RenderBeginTag("h3");
  • writer.Write(Titre);
  • writer.RenderEndTag();
  • base.Render(writer);
  • writer.RenderEndTag();
  • }
  • /// <summary>
  • /// Gets the script.
  • /// </summary>
  • /// <returns></returns>
  • private string GetScript()
  • {
  • string script = @"function imageSelect(img)
  • {
  • var images=img.parentNode.parentNode.parentNode.getElementsByTagName('img');
  • for(i=0;i<images.length;i++)
  • images[i].style.border = 'none';
  • img.style.border = 'solid 2px black';
  • document.getElementById('imgviewer').innerHTML='<img src=""'+img.src+'"" style=""width:300px;height:200px""/>';
  • }";
  • return script;
  • }
  • }
  • }
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using System.IO;

namespace gldfdp.Web.UI
{
    /// <summary>
    /// An online Image Viewer
    /// </summary>
    public class ImageUploader : CompositeControl
    {



        /// <summary>
        /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.
        /// </summary>
        protected override void CreateChildControls()
        {
            Controls.Clear();
            CreateControlHierarchy();
            ClearChildViewState();
        }



        private string _Titre = "Charger une image";

        /// <summary>
        /// Gets or sets the titre.
        /// </summary>
        /// <value>The titre.</value>
        protected string Titre
        {
            get { return _Titre; }
            set { _Titre = value; }
        }

        private string _ImageDirectory = "~/images";

        /// <summary>
        /// Gets or sets the image directory.
        /// </summary>
        /// <value>The image directory.</value>
        public string ImageDirectory
        {
            get { return _ImageDirectory; }
            set { _ImageDirectory = value; }
        }



        private FileUpload _fileUpload;
        private Button _validate;

        /// <summary>
        /// Creates the control hierarchy.
        /// </summary>
        private void CreateControlHierarchy()
        {
            _fileUpload = new FileUpload();
            this.Controls.Add(_fileUpload);

            _validate = new Button();
            _validate.Text = "Charger";
            _validate.Click += new EventHandler(_validate_Click);
            _validate.Style.Add("margin-left", "5px");
            _validate.Style.Add("margin-right", "5px");
            this.Controls.Add(_validate);

        }

        void _validate_Click(object sender, EventArgs e)
        {
            if (_fileUpload.PostedFile.ContentLength > 0)
            {
                _fileUpload.SaveAs(Path.Combine(Page.Server.MapPath(ImageDirectory), _fileUpload.FileName));
            }

        }


        /// <summary>
        /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl"></see> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter"></see> object, for display on the client.
        /// </summary>
        /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter"></see> that represents the output stream to render HTML content on the client.</param>
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "imageSelect", GetScript(), true);

            writer.AddStyleAttribute("border", "solid 1px black");
            writer.RenderBeginTag("div");

            writer.RenderBeginTag("h3");
            writer.Write("Liste des images déjà existantes");
            writer.RenderEndTag();

            writer.RenderBeginTag("table");
            writer.RenderBeginTag("tr");

            writer.RenderBeginTag("td");
            writer.AddStyleAttribute("border", "solid 1px silver");
            writer.AddStyleAttribute("width", "300px");
            writer.AddStyleAttribute("height", "200px");
            writer.AddStyleAttribute("margin", "5px");
            writer.AddStyleAttribute("overflow", "hidden");
            writer.AddStyleAttribute("text-align", "center");
            writer.AddStyleAttribute("vertical-align", "middle");
            writer.AddAttribute("id", "imgviewer");
            writer.RenderBeginTag("div");
            writer.RenderEndTag();
            writer.RenderEndTag();//td

            writer.RenderBeginTag("td");
            writer.AddStyleAttribute("height", "200px");
            writer.AddStyleAttribute("overflow-y", "scroll");
            writer.AddStyleAttribute("width", "90px");
            writer.RenderBeginTag("div");
            writer.RenderBeginTag("table");

            List<string> _files = new List<string>(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.jpg"));
            _files.AddRange(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.gif"));
            _files.AddRange(Directory.GetFiles(Page.Server.MapPath(ImageDirectory), "*.png"));



            foreach (string _file in _files)
            {
                writer.RenderBeginTag("tr");
                writer.RenderBeginTag("td");

                writer.AddStyleAttribute("width", "64px");
                writer.AddStyleAttribute("height", "64px");
                writer.AddAttribute("onClick", "imageSelect(this)");
                writer.AddAttribute("src", ResolveClientUrl(Path.Combine(ImageDirectory, (new FileInfo(_file)).Name)));
                writer.RenderBeginTag("img");

                writer.RenderEndTag();
                writer.RenderEndTag();
                writer.RenderEndTag();

            }
            writer.RenderEndTag();//table


            writer.RenderEndTag();//td
            writer.RenderEndTag();//tr
            writer.RenderEndTag();//table
            writer.RenderEndTag();//div

            writer.RenderBeginTag("h3");
            writer.Write(Titre);
            writer.RenderEndTag();

            base.Render(writer);

            writer.RenderEndTag();
        }

        /// <summary>
        /// Gets the script.
        /// </summary>
        /// <returns></returns>
        private string GetScript()
        {
            string script = @"function imageSelect(img)
            {
                var images=img.parentNode.parentNode.parentNode.getElementsByTagName('img');
                for(i=0;i<images.length;i++)
                    images[i].style.border = 'none';

                img.style.border = 'solid 2px black';
                document.getElementById('imgviewer').innerHTML='<img src=""'+img.src+'"" style=""width:300px;height:200px""/>';
            }";

            return script;
        }


    }
}

 Conclusion

Exemple d'utilisation:

<%@ Register Assembly="gldfdp" Namespace="gldfdp.Web.UI" TagPrefix="cc1" %>
<cc1:ImageUploader runat="server" ID="iu1" Height="200px" />

N'hésitez pas à poster vos remarques/questions


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) [.NET 2.0] GRIDVIEW EN AJAX
Source avec Zip Source .NET (Dotnet) .NET 2.0 MONITORING SYSTEME
Source avec Zip Source avec une capture Source .NET (Dotnet) .NET2 GESTIONNAIRE DE DROITS DE FICHIERS AVEC SQL SERVER EN ...
Source .NET (Dotnet) .NET2 GESTIONNAIRE DE RELATIONS [N,N] AVEC GRIDVIEW.
Source .NET (Dotnet) .NET2 GRIDVIEW COMPLET

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) WEBCONTROL DATEPICKER WEBCONTROLLIBRARY par fredzool
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT par jesusonline
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA... par jesusonline
Source avec Zip Source .NET (Dotnet) COMPACTER DU JAVASCRIPT par jesusonline
Source avec Zip Source .NET (Dotnet) WEBCONTROL IMAGE SQL SERVER AVEC DESIGNER par Yxion

Commentaires et avis

Commentaire de Pedrosa le 15/01/2008 14:46:18

Ce serait gentil de nous faire un ZIP.

Commentaire de gldfdp le 15/01/2008 16:00:00

Pas besoin de zip, tu copies colles le code ci-dessus dans un fichier .cs que tu mets dans ton App_Code. Je vais pas faire un zip d'un seul fichier...

Commentaire de hisham91 le 20/01/2008 18:37:01

LoL... pas mal ton bout de code ;)

Commentaire de venantedj le 13/04/2008 15:30:49

pas mal je t'encourage

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Bug webcontrol treeview [ par karim ] Bonjour a tous !J'utilise VS.Net version Beta 2.je crée une webform dans laquelle j'ajoute un treeview et un bouton(webcontrols). Je ne rajoute aucun Collection de webcontrol en asp.net [ par pascalwick ] voila je suis entrain de developper une dll de traduction qui va traduire une page et tous ses webcontrols.je desire donc faire une boucle pour trouve TABSTRIP : je recherche un exemple ou une aide sur ce webcontrol [ par sehn ] help, je débute en ASP.NET . Je n'arrive pas a le configurer graphiquementSeHN User Webcontrol [ par Mia ] Salut tlmVoilà, je voudrais créer un webcontrol que j'utiliserais dans +ieurs pages. QQun connait'il une adresse avec un bon tutorial en français sur KeyPress event in a WebControl.TextBox [ par sdiacal ] Je voudrais gèrer l'event d'appuyer sur une touche du clavier dans un WebControl.TextBox en .NET C#. J'ai vu qu'il y a un event appellé keyPress pour Modifier un WebControl appartenant à un DataList. [ par tofyz ] Bonjour &#224; tous,Je vais essayer d'&#233;claicir mon propos!Je souhaite afficher, par l'interm&#233;diaire d'un DataList une liste dont chaque lign Comment accèder à un WebControl à l'intérieur d'un content (en javascript)? [ par edge_man ] J'aimerai pouvoir acc&#233;der en javascript &#224; un WebControl (une TextBox) situ&#233; dans un Content. Ce Content est utilis&#233; parce que j'a [ASPX][C#] Ajout de Webcontrols dans un WebControl ? [ par outcast_fr ] Bonjour, J'ai pu lire un grand nombre de documents sur la cr&#233;ation de custom webcontrols. Ne connaissent pas encore tr&#232;s bien la technologie Probleme IE et WebControl [ par marielle1 ] Bonjour &#224; tous,Je suis en plein dev d'une application web et j'ai besoin d'onglet.Donc j''ai chercher vers les WebControl : les TabStrip.Malheure [C#][ASP.NET]Prob création webcontrol contenant d'autres webcontrols [ par outcast_fr ] Bonjour,Je veux cr&#233;er un composite control qui contiendra plusieurs contr&#244;les de base (bouton, textbox, liste d&#233;roulante ...). J'ai sim


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,841 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales