none
Les div editable c# aspx RRS feed

  • Question

  • Salut tout le monde!

    J'aimerais savoir si possible de faire un div editable en asp c#
    Entrer directement du text qui sera sauveguarder dans un fichier .htm et relus dans une div dans le site

    Mais je veut rien qui ressemble au editeur dans les blog trop compliquer a placer et a faire fonctionner 
    j'en ai pas trouver de facille et qui travaillait bien . toujours des erreur ici et la 
    j'essayer des editeur en javascript mais lors quil sagit de recuperer le text faut toujour avoir php et je connait pas

    Peut t'on m'aider ici SVP! 
    BigDan
    lundi 8 février 2010 18:09

Réponses

  • Merci nikho pour les exemples.

     

    Daniel, dès que vous rencontrez des problèmes dans votre étude, je vous propose d’ouvrir un thread spécifique. Ça vous aidera à recevoir des réponses plus précises et il sera utile aussi aux autres membres du forum qui cherchent peut-être les mêmes informations.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    • Marqué comme réponse DanielMorais jeudi 18 février 2010 02:50
    lundi 15 février 2010 13:55

Toutes les réponses

  • Bonsoir,

    Pour effectuer une saisie au sein d'un div vous aurez besoin d'un control.
    Vous pourriez utiliser une simple TextArea ( une asp TextBox en mode multiligne ) pour saisir le Text. Ensuite via un event dans le code behind vous pouvez sauvegarder son contenu dans un fichier text ou autre en fonction de votre besoin.
    Si vous souhaitez otbenir un rendu html différent en consultation ou édition vous pouvez afficher le text au sein de la textarea ou directement dans le div.
    Certains controls possédent des templates de consultation, d'édition ... pour répondre à ce besoin

    Cordialement

    lundi 8 février 2010 23:01
    Modérateur
  • Salut! Merci pour ta reponse 

    Mais y'a t'il un endroit qui explique ca de facon simple et avec example.

    Je suis du genre visuel et ce n'est pas toujour facile pour moi.

    Merci 
    BigDan
    mercredi 10 février 2010 06:26

  • Bonjour,

     

    Pour enregistrer le texte d’un textbox je vous conseille de lire la fonctionnalité du RichTextBox .

     

    Pour la suite, je vous propose ce thread qui présente un problème similaire.

    http://stackoverflow.com/questions/175381/how-to-edit-css-style-of-a-div-using-c-in-net

     

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mercredi 10 février 2010 08:02
  • Merci pour ces reponses.

    Je reguarde ca!

    A plus
    BigDan
    mercredi 10 février 2010 20:19
  • Bonjour Daniel,

     

    Aucun progrès avec votre projet ?

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    vendredi 12 février 2010 10:17
  • je suis au point mort pour l'instant
    les choses sont un peut compliquées pour le moment
    je suis pas vite pour comprendre les codes et parfois
    il me faut plusieurs tentatives.

    j'y arrive un peut avec le c# mais avec l'asp.net c'est
    different. je dois faire plus attention a ce que je fait 
    je suis pas programmeur je fais ca pour passer le temps
    et me détendre et lors que ca devient intrusif je fais autre choses.  

    Mon probleme est je comprend pas trop bien les fonctions des div et des
    textarea  et tout ce que j'ai trouver pour l'instant fonctionne pas et fonctionne avec PHP que je ne comprend pas et ne connait pas. Ca complique les choses.
    et pourtant tout ce que je veut est un boite editable apres insertion de mot passe pour y modifier le texte de temps a autre

    Mais j'essais quand meme.

    Merci encore de votre intéret et votre aides qui s'avère tres utile..

    BigDan
    vendredi 12 février 2010 16:30
  • Bonsoir,

    vous trouverez ci dessous un petit exemple qui j'espère vous aidera dans votre recherche. En plus des commentaires voici quelques explications.

    La page comporte deux Panels ( qui génèrent les div )
    - un panel sert à l'édition : il contient un une TextBox pour saisir le Text, et un bouton pour la sauvegarde
    - un panel sert à l'affichage simple du text
    - un link button sert à afficher ou masquer le panel d'édition du text

    La sauvegarde est effectué dans un fichier text à la racine du site. ( il faut donc possédez les droits d'écriture )


    Cordialement

    Le contenu de la page aspx
    <form id="form1" runat="server">
    <div>
        <asp:LinkButton runat="server" ID="lnkButton" onclick="lnkButton_Click">
        
        </asp:LinkButton>
        <asp:Panel runat="server" ID="pnlEdit" Visible="false">
            <asp:TextBox runat="server" ID="txtEdit" Rows="10" TextMode="MultiLine" Columns="50"></asp:TextBox>
            <asp:Button runat="server" ID="btnSave" onclick="btnSave_Click" Text="Sauvegarde"/>
        </asp:Panel>
        <asp:Panel runat="server" ID="Panel1">
            Mon Div : <asp:Literal runat="server" ID="ltView"></asp:Literal>
        </asp:Panel>
    </div>
    </form>

    Le code behind
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    
    namespace Test
    {
      public partial class EditDiv : System.Web.UI.Page
      {
        public string FileNamePath
        {
          get { return Server.MapPath("MonFichier.txt"); }
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
          if (!this.IsPostBack)
          {
            // cache le div
            this.ManagePanel(false);
    
            // lit le fichier si il existe
            // et affecte son contenu à la textbox et au div
            if (File.Exists(this.FileNamePath))
            {
              string divContent = File.ReadAllText(FileNamePath);
              this.txtEdit.Text = divContent;
              this.ltView.Text = divContent;
            }
          }
        }
    
        /// <summary>
        /// Affiche ou cahe le div d'édition
        /// </summary>
        /// <param name="visible"></param>
        private void ManagePanel(bool visible)
        {
          if (visible)
          {
            this.pnlEdit.Visible = true;
            this.lnkButton.Text = "Fermer le Div";
          }
          else
          {
            this.pnlEdit.Visible = false;
            this.lnkButton.Text = "Editer le Div";
          }
        }
    
        /// <summary>
        /// Event associé ou bouton pour sauvegarder le contenu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
          // gestion des retours à la lignes
          string content = this.txtEdit.Text.Replace(Environment.NewLine, "<br>");
    
          // sauvegarde du fichier à la racine du site
          File.WriteAllText(this.FileNamePath, content);
    
          // affecte le contenu de la textbox
          this.ltView.Text = content;
    
          // cache le div d'édition
          this.ManagePanel(false);
        }
    
        protected void lnkButton_Click(object sender, EventArgs e)
        {
          // gestion visibilité
          this.ManagePanel(!this.pnlEdit.Visible);
        }
      }
    }
    


    • Marqué comme réponse Alex Petrescu lundi 15 février 2010 13:55
    • Non marqué comme réponse DanielMorais dimanche 21 février 2010 02:19
    vendredi 12 février 2010 17:52
    Modérateur
  • Merci nikho pour les exemples.

     

    Daniel, dès que vous rencontrez des problèmes dans votre étude, je vous propose d’ouvrir un thread spécifique. Ça vous aidera à recevoir des réponses plus précises et il sera utile aussi aux autres membres du forum qui cherchent peut-être les mêmes informations.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    • Marqué comme réponse DanielMorais jeudi 18 février 2010 02:50
    lundi 15 février 2010 13:55
  • Merci a tous pour ca et desole de ne pas avoir fait de reponse a vos comm
    ca m'aide beaucoup et j'apprecie

    mais je suis pas la souvent car la recherhce d'emploi me procupe beaucoup de ce temps ci

    Merci encore


    BigDan
    • Marqué comme réponse DanielMorais jeudi 18 février 2010 02:50
    • Non marqué comme réponse DanielMorais dimanche 21 février 2010 02:19
    jeudi 18 février 2010 02:50
  • Merci encore mais j'obtien l'erreur suivant
    lorsque je tente de fermer ou enregistrer le texte

    En fait il me fait savoir que il ne peut pas enregistre le fichier parce que celui-ci est modifier 
    a Linsertion dan le textbox editable 
    la premiere fois apres l'enregistrement si je ferme pas la page il est ok mais si je ferme tout et revient le text est wraper et ccontient de <br /> au lieu des saut de ligne normal et je peut plus rien faire
     

    Erreur du serveur dans l'application '/wwwroot'.

    Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client (ctl00$MainContent$txtEdit="...st mon nom<br />Daniel Morais ...").

    Description : La validation de la demande a détecté une valeur d'entrée du client potentiellement dangereuse et le traitement de la demande a été abandonné. Cette valeur peut indiquer une tentative pour compromettre la sécurité de votre application, telle qu'une attaque de script entre sites. Vous pouvez désactiver la validation de la demande en définissant validateRequest=false dans la directive de page ou dans la section de configuration . Cependant, il est fortement recommandé que votre application contrôle explicitement toutes les entrées dans ce cas là.

    Détails de l'exception: System.Web.HttpRequestValidationException: Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client (ctl00$MainContent$txtEdit="...st mon nom<br />Daniel Morais ...").

    Erreur source:

    [Aucune ligne source appropriée]

    Fichier source : c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\wwwroot\2bbdc88e\d7824084\App_Web_opfglirs.0.cs    Ligne : 0

    Trace de la pile:

    [HttpRequestValidationException (0x80004005): Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client (ctl00$MainContent$txtEdit="...st mon nom<br />Daniel Morais ...").]
       System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +8721914
       System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +111
       System.Web.HttpRequest.get_Form() +129
       System.Web.HttpRequest.get_HasForm() +8722023
       System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97
       System.Web.UI.Page.DeterminePostBackMode() +63
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
       System.Web.UI.Page.ProcessRequest() +80
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +49
       ASP.default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\wwwroot\2bbdc88e\d7824084\App_Web_opfglirs.0.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
    
    La ligne qui remplace les saut de ligne ou nouvelle ligne

    est

    string

     

    content = this.txtEdit.Text.Replace(Environment.NewLine, "<br />");

    y aurait il une erreur dans cette facon faire

    Merci

    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.3603; Version ASP.NET :2.0.50727.3082

    BigDan
    dimanche 21 février 2010 01:38
  • Bonjour,

    dans mon exemple le contenu du fichier est placé  dans un control de type litéral : pour conserver les sauts de ligne éventuelles ceux ci sont donc remplacer par leur équivalent html <br />
    Pour l'édition, pour éviter l'avertissement de sécurité il faut effectivement effectuer l'opération inverse :

    this.txtEdit.Text = divContent.Replace("<br />", Environment.NewLine);

    Si besoin tu peux également utiliser HttpUtility.HtmlDecode / HtmlDecode

    Cordialement
    lundi 22 février 2010 09:35
    Modérateur
  • Merci beaucoup j'ai effectivement crus comprendre ca vu qu'il etait dans le save to file
    mais je l'ai compris un peut avant cette reponse

    Merci encore la preuve que je dois reguarder plus longtemps les code afin de mieu les comprendre
    la dessus je le concoit je suit pas vite.

    et j 'aimerait savoir si possible si on peut ajouter quelques fonction a ce truc

    couleur de texte et taille et alignement

    ou il me faut modifier le tout

    Merci
    BigDan
    lundi 22 février 2010 15:22