Ошибка в редакторе HTML в ASP.net Ajax toolkit - PullRequest
1 голос
/ 05 октября 2009

Я пытаюсь проверить содержимое редактора HTML с помощью настраиваемого элемента управления ASP.net. Идея состоит в том, чтобы проверить, что некоторый контент был введен - так же, как работает обязательный валидатор поля.

В ClientValidationFunction = "SomeFunction" я ссылаюсь на эту функцию:

 function SomeFunction(source, args)
    {
        var editor = $find("<%=htmlEditor.ClientID%>");
        var content = editor.get_content();
        var isValid = content.length > 0;
        editor.set_content(content); 
        args.IsValid = isValid;
    }

Причина, по которой я установил контент после его получения, заключается в том, что это хакерство для повторной регистрации контента в редакторе. По какой-то причине, если я не сбрасываю содержимое во второй попытке выполнить обратную передачу - после того, как оно было проверено, - пустой контент с первой попытки отправляется обратно вместо действительного содержимого.

Кто-нибудь знает, как проверить содержимое редактора HTML, без необходимости сброса содержимого? Или, если он сбрасывается с помощью set_content (), без отключения размера шрифта и меню стиля шрифта?

Ответы [ 2 ]

1 голос
/ 15 февраля 2010

Как я уже говорил в моем предыдущем посте, вам не нужен хак set_content. Это мой код, который я использую для проверки того, что редактор не пуст:

  <asp:CustomValidator 
                    CssClass="errorMessage" 
                    ID="HtmlEditorValidator" 
                    runat="server" 
                    ErrorMessage="Release Note cannot be empty"
                    Display="None" 
                    ControlToValidate="radEditor"
                    EnableClientScript="true"
                    ClientValidationFunction ="checkEditorNotEmpty"
                    OnServerValidate="CheckEditorNotEmptyServerSide"
                    ValidateEmptyText="true">
</asp:CustomValidator>  

function checkEditorNotEmpty(source, args)
        {
            var editor = $find("<%=radEditor.ClientID%>");
            var cont = editor.get_text();
            var isValid = cont.length > 0;
            args.IsValid = isValid;
        }

// В коде позади:

  protected void CheckEditorNotEmptyServerSide(object sender, ServerValidateEventArgs args)
        {
            bool valid = args.Value.Length > 0;
            args.IsValid = valid;
        }

Это работает с сентябрьским выпуском, надеюсь, они не пропустили исправление ошибки в выпуске Novemeber: это было бы очень странно

HTH

1 голос
/ 06 октября 2009

ОК, решил эту проблему, обновив до последнего выпуска (сентябрь 2009 г.) Ajax Toolkit.

Взлом set_content () больше не нужен. Просто удалите это из приведенного выше кода JavaScript, и пользовательский валидатор будет работать. Редактор HTML теперь передает обновленный контент на сервер: «Woohoo!»

Спасибо ребятам из Obout за исправление ошибки! : -)

...