Set/get scope var через csjs

Тема в разделе "Lotus - Xpages", создана пользователем victorhalf, 1 авг 2016.

Метки:
  1. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    Привет, Помогите понять что не так.
    Что нужно: спросить пользователя и записать его ответ в поле документа
    Что делал:
    1)поле прикрученное к скоп переменной
    Код (Text):
    <xp:inputText id="rejectInput" value="#{sessionScope.rejectReason}">  </xp:inputText>
    2)кнопка с кодом
    csjs =
    Код (Javascript):
    var ans = XSP.prompt("Причина?");
    if(ans==null || ans=="" )
       {alert("Нужна причина "); return false
    }else{
       XSP.getElementById("#{id:rejectInput}").value = ans;
      return true;  };
    ssjs =
    (для примера) document1.setValue("history",sessionScope.rejectReason);

    В чем хрень: в итоге в ssjs скоп переменную не получаю (смотрю в дебагере - её вообще нет)
    Причем этот код работал пока всё было на одной странице, а когда разбросал по кастом контролам обнаружил такую ж.
    Помогите плиз, может чего не так делаю?
     
  2. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    55
    Симпатии:
    4
    А Вы данные-то на сервер отправляете? (партиал рефреш)
    Скиньте полный код кнопки, пожалуйста
     
  3. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    Изначально - нет. Но код-то работал(пока был на одной странице).
    Как я понимаю рефреш запускать нужно из клиентского кода? Тогда это ситуацию не изменило.
    Код (Javascript):

     var ans = XSP.prompt("Причина?");
    if(ans==null || ans=="" )
       {alert("Нужна причина "); return false
    }else{
       XSP.getElementById("#{id:rejectInput}").value = ans;
       XSP.partialRefreshGet("#{id:rejectInput}");
      return true;  };
    Полный код кнопки местный движок блочит(. но важно ведь что в csjs.
    ПС.Собственно я обошёлся Rpc, но осадочек то остался
     
  4. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    55
    Симпатии:
    4
    Либо в кнопке настраиваете partial refresh и partial execute, либо в csjs, да..
    Если не ошибаюсь, XSP.partialRefreshGet("#{id:rejectInput}"); - только получит данные с сервера, Вам же их надо отправить, используйте partialRefreshPost или передавайте в Get параметр со значением

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

    p.s. код можно в текстовый файл кинуть и приложить
     
Загрузка...

Поделиться этой страницей