2009-03-12 3 views
1

J'utilise FCKEditor sur ma page web asp.net. Il semble magnifiquement, et l'éditeur semble très bon sur le front. Le seul problème est que la propriété .Value n'est pas définie sur la publication. Peu importe les modifications apportées par l'utilisateur à la valeur du contrôle sur la page, lorsque je clique sur "Envoyer", la propriété .Value reste vide.FCKEditor ne définit pas la propriété Value sur la publication!

J'ai cherché d'autres solutions, et la plupart d'entre elles sont de la variété où il y a un conflit avec Ajax, tels que this et this. Mon problème n'est pas résolu par ces solutions; c'est beaucoup plus fondamental que ça. Je ne fais rien avec Ajax; Je suis juste un débutant simple d'asp.net avec un formulaire Web simple, et la propriété de valeur n'est pas placée sur la publication, pas dans IE et pas dans FF.

Il semble qu'au moins one other person a eu ce problème, mais pas encore de solution.

Des idées? Merci!


Nouvelles informations: J'ai essayé sur un "Bonjour tout le monde" site web de test - et le site web de test fonctionne à 100%. Il y a évidemment un problème sur ma page, mais je n'ai aucune idée de l'endroit où commencer à suivre cela.

Voici le balisage de ma page, au cas où quelqu'un peut voir quoi que ce soit évident que mes yeux débutants ne peuvent pas:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="EmailTemplateEditForm.aspx.vb" 
    Inherits="EEI_App.EmailTemplateEditForm" %> 

<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %> 
<!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>EEI - Email Template</title> 
    <link rel="stylesheet" href="EEI.css"> 

    <script language="javascript" id="jssembleWare" src="sembleWare.js"></script> 

    <style type="text/css"> 
    .style1 
    { 
     height: 251px; 
    } 
    .style2 
    { 
     width: 2%; 
     height: 251px; 
    } 
    .style3 
    { 
     height: 490px; 
    } 
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <%@ register src="header.ascx" tagname="header" tagprefix="uc1" %> 
    <%@ register src="footer.ascx" tagname="footer" tagprefix="uc1" %> 
    <uc1:header ID="header1" runat="server" /> 
    <!-- main content area --> 
    <div class="content"> 
    <!-- title of the page --> 
    <div class="boxheader"> 
     Email Template 
    </div> 
    <div class="standardbox"> 
     <!-- Start Page Main Contents--> 
     <!-- error messages --> 
     <div class="errorbox"> 
     <asp:Label ID="lblError" CssClass="ErrorControlStyle" runat="server" EnableViewState="False" 
      Width="100%"></asp:Label> 
     </div> 
     <table class="contenttable"> 
     <tr> 
      <td align="left" valign="top" class="style3"> 
      <div class="actionbox"> 
       <div class="navheadertitle"> 
       Navigation</div> 
       <ul> 
       <li> 
        <asp:LinkButton ID="btnSubmit" CssClass="LinkButtonStyle" runat="server">Submit</asp:LinkButton> 
       </li> 
       <li> 
        <asp:LinkButton ID="btnCancel" CssClass="LinkButtonStyle" runat="server" CausesValidation="false">Cancel</asp:LinkButton> 
       </li> 
       </ul> 
      </div> 
      </td> 
      <td align="left" valign="top" class="style3"> 
      <p> 
      </p> 
      <table> 
       <tr class="MCRSFieldRow"> 
       <td class="MCRSFieldLabelCell"> 
        <asp:Label ID="lblEmailTemplate_TemplateName" CssClass="LabelStyle" runat="server" 
        Width="175">Template Name</asp:Label> 
       </td> 
       <td class="MCRSFieldEditCell"> 
        <asp:TextBox ID="txtEmailTemplate_TemplateName" CssClass="TextBoxStyle" runat="server" 
        Width="100%"></asp:TextBox> 
       </td> 
       <td class="MCRSFieldLabelCell"> 
        <asp:Label ID="lblEmailTemplate_TemplateType" CssClass="LabelStyle" runat="server" 
        Width="175">Template Type</asp:Label> 
       </td> 
       <td class="MCRSFieldEditCell"> 
        <asp:RadioButtonList ID="rblEmailTemplate_TemplateType" CssClass="RadioButtonListStyle" 
        runat="server" RepeatColumns="1" RepeatDirection="Horizontal" Width="135px"> 
        <asp:ListItem Value="1">Cover Letter</asp:ListItem> 
        <asp:ListItem Value="2">Email</asp:ListItem> 
        </asp:RadioButtonList> 
       </td> 
       <td class="MCRSRowRightCell"> 
        &nbsp; 
       </td> 
       </tr> 
       <tr class="MCRSFieldRow"> 
       <td class="MCRSFieldLabelCell"> 
        Composition Date 
       </td> 
       <td class="MCRSFieldEditCell"> 
        <asp:Label ID="lblEmailTemplate_CompositionDate" CssClass="ElementLabelStyle" runat="server" 
        Width="175"></asp:Label> 
       </td> 
       <td class="MCRSFieldLabelCell"> 
        Last Used Date 
       </td> 
       <td class="MCRSFieldEditCell"> 
        <asp:Label ID="lblEmailTemplate_LastUsedDate" CssClass="ElementLabelStyle" runat="server" 
        Width="175"></asp:Label> 
       </td> 
       <td class="MCRSRowRightCell"> 
        &nbsp; 
       </td> 
       </tr> 
       <tr class="MCRSFieldRow"> 
       <td class="MCRSFieldLabelCell"> 
        Composed By 
       </td> 
       <td class="MCRSFieldEditCell" colspan="3"> 
        <asp:Label ID="lblPerson_FirstNames" CssClass="ElementLabelStyle" runat="server"></asp:Label> 
        <asp:Label ID="lblPerson_LastName" CssClass="ElementLabelStyle" runat="server"></asp:Label> 
       </td> 
       <td class="MCRSRowRightCell"> 
        &nbsp; 
       </td> 
       </tr> 
       <tr class="MCRSFieldRow"> 
       <td class="MCRSFieldLabelCell"> 
        <asp:Label ID="lblEmailTemplate_Subject" CssClass="LabelStyle" runat="server" Width="175">Subject</asp:Label> 
       </td> 
       <td class="MCRSFieldEditCell" colspan="3"> 
        <asp:TextBox ID="txtEmailTemplate_Subject" CssClass="TextBoxStyle" runat="server" 
        Width="100%"></asp:TextBox> 
       </td> 
       <td class="MCRSRowRightCell"> 
        &nbsp; 
       </td> 
       </tr> 
       <tr class="MCRSFieldRow"> 
       <td class="style1"> 
        <asp:Label ID="lblEmailTemplate_Body" CssClass="LabelStyle" runat="server" Width="175">Body</asp:Label> 
       </td> 
       <td class="style1" colspan="3"> 
        <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" Height="500px"> 
        </FCKeditorV2:FCKeditor> 
       </td> 
       <td class="style2"> 
        &nbsp; 
       </td> 
       </tr> 
      </table> 
      </td> 
     </tr> 
     </table> 
    </div> 
    <p> 
     <a class="InputButtonStyle" href="#_swTopOfPage">Top of Page</a> 
    </p> 
    </div> 
    <uc1:footer ID="footer1" runat="server" /> 
    <p> 
    <asp:TextBox ID="txtEmailTemplate_Body" CssClass="TextAreaStyle" Rows="4" runat="server" 
     Width="100%" Height="16px" Visible="False"></asp:TextBox> 
    </p> 
    </form> 
</body> 
</html> 

Répondre

1

Avez-vous ViewState activé? ANS = Oui

EDIT: OK, puis à l'intérieur de l'événement Page_Init essayez d'ajouter les éléments suivants:

Page.RegisterRequiresPostBack(FCKeditor1); 
+0

EnableViewState = True, oui –

4

problème à obtenir la valeur de FCKeditor (FCKeditor.Value) à ASP.Net 1. Si la valeur initiale FCKeditor.Value n'est pas définie, il n'y a pas de problème, toutes les valeurs placées dans FCKeditor peuvent être obtenues avec FCKeditor.Value. 2. Problème: si la valeur initiale FCKeditor.Value n'est pas nulle, alors si je veux obtenir une valeur, elle ne me donne que la valeur initiale.

J'ai résolu !!!! J'ai passé toute la journée ... J'ai difficilement trouvé la réponse. Spécialement inscrit pour écrire une réponse! Regardez! Exemple:

// Définir une valeur initiale à FCKeditor

void Page_Init(object sender, EventArgs e) 
{ 
DataTable dT_01 = new DataTable(); 
     dT_01 = DataLayerMainContent.ArticlesSelect(2); 
     FCKeditor_Edit.Value = dT_01.Rows[0]["ArticleText"].ToString(); 
} 

Attention !!! Vous n'avez pas à le faire ici !!

protected void Page_Load(object sender, EventArgs e) 
{ 
    // Not here!!! 
} 

// Et obtenir la valeur de FCKeditor

protected void Btn_ContentEditedSave_Click(object sender, EventArgs e) 
{ 
    //FCKeditor_Edit.Value 
    // And add this value to DataBase 
    DataLayerAdminPost.ContentMainEdit(1, FCKeditor_Edit.Value); 
    Response.Redirect(Request.RawUrl); 
} 

Idée principale! Définissez la valeur initiale sur FCKeditor à Page_Init!

+0

Wow, il est près de 2 ans que j'ai eu ce problème - et je vous apprécie vraiment partager cela! En attendant, j'ai depuis longtemps quitté ce projet, donc malheureusement je ne peux même pas tester votre réponse, encore moins l'accepter. Mais +1 pour l'effort! J'espère que quelqu'un d'autre bénéficiera de votre recherche! –

+0

Beau travail, ça marche pour moi;) – Nico

1

La solution ci-dessus n'a pas fonctionné pour moi, mais je l'ai trouvé solution here

Code Voici ce que je

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterOnSubmitStatement(
     this, 
     this.GetType(), 
     "AjaxHack", "for (var i = 0; i < parent.frames.length; ++i) if (parent.frames[i].FCK) parent.frames[i].FCK.UpdateLinkedField();"); 
} 

espoir qui sauve le jour de someones. Je cherchais la solution depuis 2 mois.

Vive

Questions connexes