2013-09-09 3 views
0

У меня есть Аякс HtmlEditorExtender на моей странице, как описаны в этом:HtmlEditorExtender По умолчанию Стилей

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/HTMLEditorExtender/HTMLEditorExtender.aspx

Проблема заключается в том, что не пришли с каким-либо стилем по умолчанию. В результате у меня есть куча простых кнопок без изображений или чего-то еще. Я попытался найти эту так называемую страницу «Editor.css», как описано здесь: http://www.asp.net/ajaxlibrary/act_HTMLEditor.ashx, но, похоже, она нигде не существует. Это делается на моем dev-сервере, но на моем рабочем сервере он ничего не делает (просто текстовое поле). Кто-нибудь может помочь?

Мой ASPX код ниже

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="New.aspx.cs" Inherits="C4G.NPO.Themes.New" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
    <script type="text/javascript"> 
     function colorChanged(sender) { 
      sender.get_element().style.color = "#" + sender.get_selectedColor(); 
     } 
    </script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#Editor").wysiwyg(); 
     }); 
    </script> 
    <div id="MainContent"> 
     <h1>Add a New Theme</h1> 
     <div class="Form" style="width: 600px;"> 
      <div class="FormRow"> 
       <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label><asp:TextBox ID="NameTextBox" runat="server"></asp:TextBox> 
      </div> 
      <div class="FormRow"> 
       <asp:Label ID="Label2" runat="server" Text="Description"></asp:Label><asp:TextBox ID="DescriptionTextBox" runat="server" TextMode="MultiLine"></asp:TextBox> 
      </div> 
      <div class="FormRow"> 
       <asp:TextBox runat="server" ID="Editor"></asp:TextBox> 
       <ajaxToolkit:HtmlEditorExtender ID="HtmlEditorExtender1" 
        TargetControlID="Editor" DisplaySourceTab="true" 
        runat="server"> 
        <Toolbar> 
         <ajaxToolkit:Undo /> 
         <ajaxToolkit:Redo /> 
         <ajaxToolkit:Bold /> 
         <ajaxToolkit:Italic /> 
         <ajaxToolkit:Underline /> 
         <ajaxToolkit:StrikeThrough /> 
         <ajaxToolkit:Subscript /> 
         <ajaxToolkit:Superscript /> 
         <ajaxToolkit:JustifyLeft /> 
         <ajaxToolkit:JustifyCenter /> 
         <ajaxToolkit:JustifyRight /> 
         <ajaxToolkit:JustifyFull /> 
         <ajaxToolkit:InsertOrderedList /> 
         <ajaxToolkit:InsertUnorderedList /> 
         <ajaxToolkit:CreateLink /> 
         <ajaxToolkit:UnLink /> 
         <ajaxToolkit:RemoveFormat /> 
         <ajaxToolkit:SelectAll /> 
         <ajaxToolkit:UnSelect /> 
         <ajaxToolkit:Delete /> 
         <ajaxToolkit:Cut /> 
         <ajaxToolkit:Copy /> 
         <ajaxToolkit:Paste /> 
         <ajaxToolkit:BackgroundColorSelector /> 
         <ajaxToolkit:ForeColorSelector /> 
         <ajaxToolkit:FontNameSelector /> 
         <ajaxToolkit:FontSizeSelector /> 
         <ajaxToolkit:Indent /> 
         <ajaxToolkit:Outdent /> 
         <ajaxToolkit:InsertHorizontalRule /> 
         <ajaxToolkit:HorizontalSeparator /> 
         <ajaxToolkit:InsertImage /> 
        </Toolbar> 
       </ajaxToolkit:HtmlEditorExtender> 
      </div> 
      <div class="FormRow"> 

      </div> 
     </div> 
    </div> 
</asp:Content> 

И на всякий случай, вот мой файл web.config:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <sectionGroup name="system.web"> 
     <section name="sanitizer" requirePermission="false" type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, AjaxControlToolkit"/> 
    </sectionGroup> 
    </configSections> 
    <connectionStrings> 
    Connection Strings Here 
    </connectionStrings> 
    <system.web> 
    <sanitizer defaultProvider="HtmlAgilityPackSanitizerProvider"> 
     <providers> 
     <add name="HtmlAgilityPackSanitizerProvider" type="AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider"></add> 
     </providers> 
    </sanitizer> 
    <customErrors mode="Off" /> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="Microsoft.AspNet.Identity" /> 
     </namespaces> 
     <controls> 
     <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" /> 
     <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /></controls> 
    </pages> 
    <membership> 
     <providers> 
     <!-- 
      ASP.NET Membership is disabled in this template. Please visit the following link http://go.microsoft.com/fwlink/?LinkId=301889 to learn about the ASP.NET Membership support in this template 
     --> 
     <clear /> 
     </providers> 
    </membership> 
    <profile> 
     <providers> 
     <!-- 
      ASP.NET Membership Profile is disabled in this template. Please visit the following link http://go.microsoft.com/fwlink/?LinkId=301889 to learn about the ASP.NET Membership support in this template 
     --> 
     <clear /> 
     </providers> 
    </profile> 
    <roleManager> 
     <!-- 
      ASP.NET Membership Role is disabled in this template. Please visit the following link http://go.microsoft.com/fwlink/?LinkId=301889 to learn about the ASP.NET Membership support in this template 
     --> 
     <providers> 
     <clear /> 
     </providers> 
    </roleManager> 
    <!-- 
      If you are deploying to a cloud environment that has multiple web server instances, 
      you should change session state mode from "InProc" to "Custom". In addition, 
      change the connection string named "DefaultConnection" to connect to an instance 
      of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express. 
     --> 
    <sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
     <providers> 
     <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" /> 
     </providers> 
    </sessionState> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

Это то, что я получаю: enter image description here

ответ

1

Вы с эта проблема в вашей среде разработки или на вашем сервере (или и том и другом)?

Изображения взяты из файла под названием «WebResource.axd» - то, что вы не увидите в своем проекте, но автоматически генерируется библиотекой AjaxControlToolkit. Не видя ваш код или пример проблемы, я предполагаю, что ваша библиотека, вероятно, не настроена правильно в вашем проекте.

Простым способом настройки является использование диспетчера пакетов библиотек (Nuget) для установки библиотеки на ваш веб-сайт. Это не только установит ссылки, но и настроит ваш web.config. FYI, я просто сделал следующее испытание:

1) Создан новый пустой проект ASP.NET в Visual Studio 2) Добавлен новый веб-форму к проекту 3) скопировал образец HTML Editor разметки со страницы вас при условии, и вставить его в мою новую форму 4) Добавлен ToolkitScriptManager и TextBox на страницу, только по форме и перед HTML Editor:

<ajaxToolkit:ToolkitScriptManager ID="tsm" runat="server"></ajaxToolkit:ToolkitScriptManager> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

5) Добавлено следующее свойство в разметке HTML Editor (Я не советую вам это делать - я сделал это только ради тестирования):

EnableSanitization="false" 

Я бы попробовал это самостоятельно, и если это сработает, сравните ваши два проекта с различиями. Если это не так, обновите это сообщение с помощью публичной ссылки на ваш сайт (если возможно) или вашей разметки для редактора HTML.

+0

Извините, обновленный вопрос с кодом – Jack

+0

Ваше целевое текстовое поле - (id = "Editor") - должно обладать следующими свойствами: TextMode = "MultiLine" Columns = "50" Rows = "10". Вы можете изменить значения столбцов и строк, но без этих свойств HTMLEditorExtender не будет работать должным образом. Кроме того, в событии jQuery document.ready вы вызываете метод, который не принадлежит текстовому полю «# Editor», и он не принадлежит к HTMLEditorExtender; удалите эту строку в дополнение к добавлению вышеупомянутых трех свойств, и вещи «должны» работать. –

+0

Извините, jQuery из другого решения, которое я пытался. Я отредактировал свойства, которые вы указали безрезультатно :( – Jack

Смежные вопросы