2014-12-29 9 views
0

У меня есть кнопка внутри div xpages, и я пытаюсь вычислить класс стиля этой кнопки на основе переменной области.Измените класс стиля, изменив значение переменной области

Изначально значение переменной области видимости - «синее», а цвет фона кнопки внутри div также синий.

Когда я нажимаю на вторую кнопку, я устанавливаю значение переменной области видимости в «зеленый» и выполняю частичное обновление div.

Теперь я ожидаю, что кнопка станет зелёной, но класс не изменяется.

Вот в SSJS для вычисления класса стиля:

if(sessionScope.sTest == 'green'){ 
    return 'btn-success'; 
} 
else{ 
    return 'btn-primary'; 
} 

Итак, мой вопрос, есть класс стиля пересчитывается во время частичного обновления или я должен прибегнуть к любому JQuery или Додзе для того, чтобы измените класс стиля.

Любая помощь была бы высоко оценена!

+0

Простейшее решение было бы использовать JQuery и использовать() функции в addClass() и removeClass. – 9997

+0

напишите код, который использует возвращаемую строку – Rooster

ответ

3

если отключить тему для кнопки она должна работать

<xp:button id="btn" disableTheme="true"></xp:button>  
+0

Привет, Томас, это сработало! Интересно, почему вы должны отключить тему. Несмотря на то, что я загружаю все файлы Bootstrap с помощью темы, мне все равно нужно указать кнопку, какой класс (btn-danger, btn-success и т. Д.), И подумал бы, что я могу изменить класс. –

+0

Эта проблема связана с фазами JSF. Тема определяет класс кнопки в режиме concat, поэтому его необходимо установить перед загрузкой страницы. Вот почему, если вам нужно вычислить styleClass для кнопок в бутстрапе, вам нужно отключить тему. Вы также можете использовать решение Марка здесь. http://linqed.eu/2014/08/28/xpages-gotcha-modeconcat-in-your-themes –

+0

Спасибо Сердар за это, я ценю это. –

0

Пожалуйста, не сравнивайте Java-строки таким образом, вместо этого используйте .equals ("...").

+0

Привет, Оливер, спасибо за ваш ответ. Извините за вопрос, но как я буду использовать .equals в этом случае? –

+0

Это не относится к Javascript. – Pataar

+0

Pataar, Serverside Javascript созван на Java во время выполнения. Это не Clientside Javascript, который используется здесь. –

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