2011-04-18 3 views
1

i ont un div et un éditeur html et essayer de:comment changer le code html intérieur d'un div

  1. ajouter le code HTML intérieur div à l'éditeur . (c'est fait)
  2. puis toutes les modifications effectuées dans l'éditeur est enregistrée dans la div.

ici est le backcode:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Editor.Content = cvDiv.InnerHtml; 
} 

protected void preview(object sender, EventArgs e) //this is an onclick event 
{ 
    cvDiv.InnerHtml = Editor.Content; 
} 

et le code pour l'éditeur:

<asp:ScriptManager runat="server" /> 
<cc1:Editor ID="Editor" runat="server" OnContentChanged="preview" /> 
<asp:Button runat="server" ID="eButton" CssClass="eButton" Text="Edit" OnClick="Edit" />// this is the button that is supposed to save 

mais cela ne fonctionne pas.

donc ce que je suis en train de faire est de sauver tous les changements effectués dans l'éditeur à la div

utilisant asp.net 3.5, et l'éditeur de boîte à outils ajax.

merci d'avance.

Répondre

2

Ceci est un exemple que j'ai fait pour vous montrer un code de travail.

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"></asp:ScriptManager> 
     <asp:TextBox id="editor" runat="server" AutoPostBack="true"></asp:TextBox> 
     <asp:Button ID="Save" runat="server" OnClick="SaveChange" Text="Save" /> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" > 
      <ContentTemplate> 
       <div id="preview" runat="server"></div>  
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="editor" EventName="TextChanged" /> 
      </Triggers> 
     </asp:UpdatePanel> 
    </form> 
</body> 
</html> 

aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) editor.Text = preview.InnerHtml; 
     else preview.InnerHtml = editor.Text; 

    } 

    protected void SaveChange(object sender, EventArgs e) 
    { 
     string thingsToSave = preview.InnerHtml; 
     //Save to db/file/xml 

    } 

} 
+0

J'ai déjà récupéré le contenu de la div à l'éditeur, im essayant de le sauvegarder si des modifications ont été apportées – Wahtever

+0

pouvez-vous poster votre ASPX? – 2GDev

+0

je ne peux pas partager la div parce qu'elle a trop d'éléments et de lignes mais je peux partager l'éditeur. – Wahtever

0

Pouvez-vous essayer d'utiliser le contrôle Literal plutôt qu'un côté serveur <div />?

+0

déjà essayé un littéral et un panneau, ils ne marche pas avoir la fonction innerHTML – Wahtever

+0

@Wahtever, Avec littérales, il vous suffit de définir la propriété Text à votre HTML. Voir http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literalmode.aspx –

+0

je l'ai déjà fait mais il ne fonctionnera toujours pas, peu importe ce que je fais tout ce qui est à l'intérieur du littéral ou div wont Reconnaître les modifications apportées par l'éditeur – Wahtever