FCKEditor не устанавливает свойство Value при обратной передаче! - PullRequest
1 голос
/ 12 марта 2009

Я использую FCKEditor на моей веб-странице asp.net. Это выглядит красиво, и редактор выглядит очень хорошо на переднем конце. Единственная проблема заключается в том, что свойство .Value не устанавливается при обратной передаче. Независимо от того, какие изменения вносит пользователь в значение элемента управления на странице, при нажатии кнопки «Отправить» свойство .Value остается пустым.

У меня есть Googled для других решений, и большинство из них относятся к тем разновидностям, в которых есть конфликт с Ajax, например , и , . Моя проблема не решается этими решениями; это гораздо более фундаментально, чем это. Я не делаю ничего общего с Ajax; Я просто новичок в asp.net с простой веб-формой, и свойство value не устанавливается при обратной передаче, не в IE и не в FF.

Похоже, что по крайней мере еще один человек имел эту проблему, но решения пока нет.

Есть идеи? Спасибо!


Новая информация: Я попробовал это на тестовом веб-сайте "Привет, мир" - и тестовый веб-сайт работает на 100%. Очевидно, на моей странице есть проблема, но я не знаю, с чего начать.

Вот разметка моей страницы, на случай, если кто-нибудь увидит что-то очевидное, чего не видят мои глаза новичка:

<%@ 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>

Ответы [ 3 ]

4 голосов
/ 23 декабря 2010

Проблема с получением значения от FCKeditor (FCKeditor.Value) на ASP.Net 1. Если начальное значение FCKeditor.Value не установлено, проблем не возникает, все значения, помещенные в FCKeditor, могут получить с помощью FCKeditor.Value. 2. Проблема: если начальное значение FCKeditor.Value не равно нулю, то, если я хочу получить значение, оно дает мне только начальное значение.

Я решил !!!! Я провел весь день ... С трудом нашел ответ. Специально зарегистрирован, чтобы написать ответ! Смотри! Пример:

// Установить начальное значение для 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();
}

Внимание !!! Вы не должны делать это здесь!

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

// И получить значение от 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);
}

Основная идея! Установите начальное значение для FCKeditor в Page_Init!

1 голос
/ 16 мая 2011

Решение выше не сработало для меня, однако я нашел решение здесь

Вот код, который я использовал

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();");
}

Надеюсь, это кого-нибудь спасет. Я искал решение 2 месяца.

Приветствия

1 голос
/ 12 марта 2009

У вас включен ViewState? ANS = Да

РЕДАКТИРОВАТЬ: ОК, затем внутри события Page_Init попробуйте добавить следующее:

Page.RegisterRequiresPostBack(FCKeditor1);
...