Как вычислить свойство Selected узла BasicLeafNode для динамического элемента управления содержимым — обновлено 26 марта 2014 г.

Я создал XPage со следующим: начал с создания пользовательского элемента управления макетом с использованием макета приложения. Я добавил элемент управления макетом в xpage, а затем добавил элемент управления динамическим содержимым. Я настроил управление следующим образом:

<xe:dynamicContent id="dynamicContent1" defaultFacet="GovernanceReviews"
useHash="true">
<xp:this.facets>
<xc:ccViewDocumentTemplates xp:key="DocumentTemplates"></xc:ccViewDocumentTemplates>

<xc:ccViewGovProcurementReviews xp:key="GovProcurementReviews"></xc:ccViewGovProcurementReviews>

<xc:ccViewGovRevReporting xp:key="GovRevReporting"></xc:ccViewGovRevReporting>

<xc:ccViewGovRevWOCompleted xp:key="GovRevWOCompleted"></xc:ccViewGovRevWOCompleted>

<xc:ccViewGovernanceReviews xp:key="GovernanceReviews"></xc:ccViewGovernanceReviews>

<xc:ccViewProfilesByType xp:key="ProfilesByType"></xc:ccViewProfilesByType>

<xc:ccViewProfilesWithTargetCompl xp:key="ProfilesWithTargetCompl"></xc:ccViewProfilesWithTargetCompl>

<xc:ccViewLastUpdated xp:key="LastUpdated"></xc:ccViewLastUpdated>

<xc:ccViewUserGuide xp:key="UserGuide"></xc:ccViewUserGuide>

<xc:ccViewTracking xp:key="Tracking"></xc:ccViewTracking>

</xp:this.facets>

</xe:dynamicContent>

Затем я добавил элемент управления навигатором в левый столбец и создал BasicLeafNodes для соответствия элементу управления динамическим содержимым. Я использовал свойство href и использовал #content="" для отображения правильного содержимого.

Это прекрасно работает, но у меня возникают проблемы с выяснением того, как сделать выбор в навигаторе выделенным, когда он выбран. Я знаю, что мне нужно вычислить свойство Selectd, но я не могу понять, как получить значение xp:key, чтобы сравнить его с SubmitValue. Я знаю, что это, вероятно, что-то простое, но я не могу понять это.

Может кто-нибудь, пожалуйста, просветите меня.

Спасибо,

MJ

ДОБАВЛЕНО 26.03.2014. У меня такое ощущение, что это как-то связано с использованием свойства href динамического элемента управления содержимым для переключения содержимого. Я знаю, что делает BasicLeafNodes Links. Итак, не уверен, как Navigator записывает, какая ссылка выполняется и как это зафиксировать.

MJ


person Mike Jackson    schedule 19.03.2014    source источник


Ответы (3)


Добавить значение — это свойство submitValue

введите здесь описание изображения

И в событии onItemClick

введите здесь описание изображения

Присвойте отправленное значение переменной viewScope

viewScope.Selected=context.getSubmittedValue()

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

if(viewScope.Selected="byCategory"){
    return true
}else{
    return false
}
person Fredrik Norling    schedule 19.03.2014
comment
Хорошо, я попробовал это, и теперь все узлы выделены. Есть идеи? - person Mike Jackson; 20.03.2014
comment
И вы добавили разные значения для проверки на каждом узле? - person Fredrik Norling; 20.03.2014
comment
Да, мой оператор if проверялся на соответствие submitvalue каждого узла. Я попытался добавить код навигатора в свой исходный пост, но я думаю, что он слишком велик. - person Mike Jackson; 20.03.2014
comment
@Fridrik, если вы дадите мне свой адрес электронной почты, я пришлю вам код навигатора. - person Mike Jackson; 20.03.2014
comment
‹мое имя› @ xpagedeveloper.com - person Fredrik Norling; 20.03.2014
comment
Было ли когда-нибудь найдено решение этой проблемы? Обновление было бы хорошо. - person ; 06.05.2015

У меня работает следующее:

if(viewScope.Selected == "byCategory"){
    return true
} else{
    return false
}

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

person Kenneth Arnold    schedule 30.03.2016

Я сделал это с помощью jQuery. Просто поместите следующий код в пользовательский элемент управления, который содержит navigator.

$( function() {
    if (window.location.hash.length > 0) {
        select()
    }
});

$(window).on('hashchange', function() {
    select();
});
function select() {
    $(".lotusColLeft .lotusMenu .lotusBottomCorner li").removeClass(
            "lotusSelected")
    $(".lotusColLeft .lotusMenu .lotusBottomCorner li a")
            .filter(
                    function() {
                        return window.location.hash.indexOf($(this).attr(
                                'href')) > -1
                    }).parent().addClass("lotusSelected")
}
person Hubert    schedule 18.11.2016