GWT изменяет размер текстовой области в IE Internet Explorer

Вы должны использовать функцию вместо процедуры. Процедура возвращает (один или несколько) наборов результатов (таблиц), тогда как функция возвращает одно значение.

Вы должны дважды подумать, прежде чем использовать функции в where-clause, если они содержат предложения select из базы данных , поскольку это может привести к ситуации, когда оптимизатор запросов не может оптимизировать путь запроса к сериализованным запросам и низкой производительности. Если количество данных невелико или вы в порядке с возможным ударом производительности, это сработает.

0
задан Maya 23 February 2019 в 13:57
поделиться

1 ответ

Я нашел решение, используя метод JQuery resizable (). Чтобы использовать его в проекте GWT, я использовал JSNI (собственный интерфейс Javascript) для интеграции кода Javascript в ваш проект GWT.

Шаги

  1. Установите идентификатор элемента виджета, размер которого мы хотим изменить в GWT.
  2. Добавьте библиотеки JQuery на начальную страницу проекта GWT (index.html или index.jsp).
  3. Создать метод JSNI. Этот метод вызовет метод JQuery resizable () для идентификатора элемента, заданного на шаге 1.
  4. В какой-то момент вызовите ваш метод JSNI в коде после метода GWT.create () или uiBinder.createAndBindUi (this).

Пример

Шаг 1. Установите идентификатор элемента:

private final String TEXT_AREA_ID = HTMLPanel.createUniqueId();

textArea.getElement().setId(TEXT_AREA_ID);

Шаг 2. На вашей странице index.html / jsp Добавьте это:

<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

Шаг 3. Создайте свой метод JSNI:

public class JSNIResizer
{
   public static native void resize(String textAreaId) /*-{
      // Internet Explorer. IE 11 uses 'trident'.
      var isIE = ($wnd.navigator.userAgent.match(/msie/i) || $wnd.navigator.userAgent.match(/trident/i));

        // Only apply this to IE browsers
        if (isIE) {

            var textArea = $wnd.$("#" + textAreaId);

            if (textArea) {
                textArea.resizable({
                    handles : 'n, s' // handle vertical resizing only.
                });

                // Optional: Adds a css style from jquery-ui.css
                textArea.addClass("ui-widget-content");
            }
        }
   }-*/;
}   

Обратите внимание, что вы можете сделать это, если не хотите ограничивать его только вертикальным изменением размера: [ 1116]

textArea.resizable();

Шаг 4. Назовите его с идентификатором элемента для изменения размера:

JSNIResizer.resize(TEXT_AREA_ID);
0
ответ дан Maya 23 February 2019 в 13:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: