Установить компонент для обновления после действия бэк-компонента [duplicate]

В Python 2.7

Нарезка в Python

[a:b:c]

len = length of string, tuple or list

c -- default is +1. The sign of c indicates forward or backward, absolute value of c indicates steps. Default is forward with step size 1. Positive means forward, negative means backward.

a --  When c is positive or blank, default is 0. When c is negative, default is -1.

b --  When c is positive or blank, default is len. When c is negative, default is -(len+1).

Очень важно понимать назначение индекса.

In forward direction, starts at 0 and ends at len-1

In backward direction, starts at -1 and ends at -len

Когда вы говорите [a: b : c], вы говорите в зависимости от знака c (вперед или назад), начинайте с a и заканчивая на b (исключая элемент в bth-индексе). Используйте правило индексирования выше и помните, что вы найдете только элементы в этом диапазоне:

-len, -len+1, -len+2, ..., 0, 1, 2,3,4 , len -1

Но этот диапазон продолжается в обоих направлениях бесконечно:

...,-len -2 ,-len-1,-len, -len+1, -len+2, ..., 0, 1, 2,3,4 , len -1, len, len +1, len+2 , ....

Например:

             0    1    2   3    4   5   6   7   8   9   10   11
             a    s    t   r    i   n   g
    -9  -8  -7   -6   -5  -4   -3  -2  -1

Если ваш выбор a, b и c позволяет перекрываться с вышеприведенным диапазоном при использовании правил для a, b, c выше, вы либо получите список с элементами (затронутыми во время обхода), либо вы получите пустой список.

Последнее: если a и b равны, то вы также получите пустой список:

>>> l1
[2, 3, 4]

>>> l1[:]
[2, 3, 4]

>>> l1[::-1] # a default is -1 , b default is -(len+1)
[4, 3, 2]

>>> l1[:-4:-1] # a default is -1
[4, 3, 2]

>>> l1[:-3:-1] # a default is -1
[4, 3]

>>> l1[::] # c default is +1, so a default is 0, b default is len
[2, 3, 4]

>>> l1[::-1] # c is -1 , so a default is -1 and b default is -(len+1)
[4, 3, 2]


>>> l1[-100:-200:-1] # Interesting
[]

>>> l1[-1:-200:-1] # Interesting
[4, 3, 2]


>>> l1[-1:-1:1]
[]


>>> l1[-1:5:1] # Interesting
[4]


>>> l1[1:-7:1]
[]

>>> l1[1:-7:-1] # Interesting
[3, 2]

>>> l1[:-2:-2] # a default is -1, stop(b) at -2 , step(c) by 2 in reverse direction
[4]
78
задан BestPractices 6 July 2012 в 16:22
поделиться

3 ответа

Используя стандартный API JSF, добавьте идентификатор клиента в PartialViewContext#getRenderIds() .

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("foo:bar");

Используя API-интерфейс PrimeFaces, используйте RequestContext#update() .

RequestContext.getCurrentInstance().update("foo:bar");

Если вы используете библиотеку служебных программ JSF OmniFaces , используйте Ajax#update() .

Ajax.update("foo:bar");

Независимо от способа, обратите внимание, что эти идентификаторы клиентов должны представлять собой абсолютные идентификаторы клиентов, которые не с префиксом символа разделителя NamingContainer, как это было бы со стороны просмотра.

141
ответ дан BalusC 23 August 2018 в 18:03
поделиться

Я также попытался обновить компонент из bean bean / class jsf bean / class

. После манипулирования компонентом пользовательского интерфейса вам необходимо выполнить следующее:

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(componentToBeRerendered.getClientId())

Важно, чтобы используйте clientId вместо (server-side) componentId !!

6
ответ дан Frithjof Schaefer 23 August 2018 в 18:03
поделиться

Функция RequestContext устарела из прайс-листов 6.2. Из этой версии используйте следующее:

if (componentID != null && PrimeFaces.current().isAjaxRequest()) {
    PrimeFaces.current().ajax().update(componentID);
}

И для выполнения javascript из backbean используйте этот способ:

PrimeFaces.current().executeScript(jsCommand);

Ссылка:

2
ответ дан ℛɑƒæĿ 23 August 2018 в 18:03
поделиться
Другие вопросы по тегам:

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