Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
xbyytty
1

Кнопка "назад" и динамический контент

24.11.2015, 14:38. Показов 4950. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Когда виды организованы через xe:dynamicContent и в виде листаем страницы, то после того, как открыли на какой-то странице документ, по кнопке "Назад" из документа надо вернуться в тот вид из которого открыли документ и на нужную страницу (к состоянию вида перед открытием документа). Такой вот вопрос ...
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 14:38
Ответы с готовыми решениями:

Кнопка назад
Добрый вечер. Как правильно сделать кнопку назад не из Манифеста а в коде я примерно так сделал...

Кнопка Назад
нашел в инете интересный проект) взял из него немного для своей программки, почти все работает...

Кнопка назад на JS
Доброе утро всем, подскажите пожалуйста как на JavaScript сделать кнопку назад с помощью объекта...

Кнопка назад
Всем привет, в проекте есть ItemPage.xaml, с нее можно перейти на нее же только с другими...

15
xbyytty
24.11.2015, 15:52 2
Дополнение: документ открывается не в отдельной странице, а так же в динамическом контенте.
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
24.11.2015, 17:35 3
Цитата Сообщение от xbeetle
Дополнение: документ открывается не в отдельной странице, а так же в динамическом контенте.
не суть важно



Цитата Сообщение от xbeetle
Когда виды организованы через xe:dynamicContent и в виде листаем страницы, то после того, как открыли на какой-то странице документ, по кнопке "Назад" из документа надо вернуться в тот вид из которого открыли документ и на нужную страницу (к состоянию вида перед открытием документа). Такой вот вопрос ...
во время клика сохраняй состояние вида в переменную окружения.
А по кнопке "Назад" переключай снова на вид и обновляй его. Должно работать.
Копай в сторону свойства first в секции data у вида
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
14.12.2015, 14:28 4
в extension library есть контрол pagerSaveState
Пример

Код (XML):
<xe:pagerSaveState id="pagerSaveState1" for="viewPanel1"
globalRows="true">
</xe:pagerSaveState>
При возврате с документа в вид перед тем как вернуться нужно вызвать
viewStateBean.restoreState = true;

Попробуйте его.

http://xcellerant.net/2013/08/... e-control/
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 10:24 5
Цитата Сообщение от Hogmuzzle
в extension library есть контрол pagerSaveState
Пример

Код (XML):
<xe:pagerSaveState id="pagerSaveState1" for="viewPanel1"
globalRows="true">
</xe:pagerSaveState>
При возврате с документа в вид перед тем как вернуться нужно вызвать
viewStateBean.restoreState = true;

Попробуйте его.

http://xcellerant.net/2013/08/... e-control/
Может быть есть пример. У меня что то не выходит.

Есть страница. На страницу добавил динамик контент в котором 2 custom control. Первый контрол содержит вид с документами, 2 содержит форму документа.
Открытие с вида документа делаю так:


Код
<xp:viewColumn columnName="Claim_Num_Disp" id="viewColumn6" displayAs="link" openDocAsReadonly="true">
<xp:viewColumnHeader value="№ заявки"
id="viewColumnHeader6">
</xp:viewColumnHeader>
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:thys.action>
<xp_1:changeDynamicContentAction for="dynamicContent1"
facetName="document">
<xp_1:thys.parameters>
<xp:parameter name="action"
value="openDocument">
</xp:parameter>
<xp:parameter name="documentId"
value="#{javascript:rowData.getDocument().getNoteID()}">
</xp:parameter>
</xp_1:thys.parameters>
</xp_1:changeDynamicContentAction>
</xp:thys.action></xp:eventHandler></xp:viewColumn>
Возврат с документа в вид

Код
<xp:button value="Label" id="button1">




<xp:eventHandler event="onclick" submit="true" refreshMode="complete">

<xp:thys.action>




<xp:actionGroup>

<xp:executeScript script="#{javascript:viewStateBean.restoreState = true;}">

</xp:executeScript><xp_1:changeDynamicContentAction for="dynamicContent1"

facetName="view">

</xp_1:changeDynamicContentAction>




</xp:actionGroup>

</xp:thys.action></xp:eventHandler></xp:button>
В результате перехода состояние вида сбрасывается.
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 12:12 6
Если у вас и вид и документ на одной странице то куда вы хотите возвратиться? Если у вас цели по клику по виду показывать соответствующий документ, то pagersavestate тут не при чем и я вас не правильно понял. Еще вопрос зачем вам refreshMode="complete"? Если вам нужно менять только часть страницы. Вы мне опишите цель а я вам помогу, а так я ничего не понял извините
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 12:28 7
Цитата Сообщение от Hogmuzzle
Если у вас и вид и документ на одной странице то куда вы хотите возвратиться? Если у вас цели по клику по виду показывать соответствующий документ, то pagersavestate тут не при чем и я вас не правильно понял. Еще вопрос зачем вам refreshMode="complete"? Если вам нужно менять только часть страницы. Вы мне опишите цель а я вам помогу, а так я ничего не понял извините
В документе надо реализовать кнопку назад. И по этой кнопке надо вернуться в последний вид в том состоянии в котором он был перед открытием документа.

Для примера
Есть 2 вида клиенты по дате регистрации и по городу.
Оба эти вида как и форма документа клиент находятся в dynamic content.
Если пользователь открывает документ с 5 страницы view, надо что б при возврате он попал на туже страницу вида ну и что б если категории были свернуты оставались также.
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 12:42 8
Там где вид кидаете
<xe:pagerSaveState id="pagerSaveState1" for="viewPanel1"
globalRows="true">
</xe:pagerSaveState>
for="viewPanel1" это id вида

в документе перед тем как вернуться viewStateBean.restoreState = true;

Но у меня еще вопрос Если у вас вид на одной странице а форма на другой, то для чего это??

<xp_1:changeDynamicContentAction for="dynamicContent1"
facetName="document">
<xp_1:thys.parameters>
<xp:parameter name="action"
value="openDocument">
</xp:parameter>
<xp:parameter name="documentId"
value="#{javascript:rowData.getDocument().getNoteID()}">
</xp:parameter>
</xp_1:thys.parameters>
</xp_1:changeDynamicContentAction>

почему вы используете changeDynamicContentAction если вы просто открываете документ по клику по линку и почему это так реализовано? И при возврате на вид почему вы опять используете
changeDynamicContentAction for="dynamicContent1" facetName="view">
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 12:51 9
Цитата Сообщение от Hogmuzzle
Там где вид кидаете
<xe:pagerSaveState id="pagerSaveState1" for="viewPanel1"
globalRows="true">
</xe:pagerSaveState>
for="viewPanel1" это id вида

в документе перед тем как вернуться viewStateBean.restoreState = true;

Но у меня еще вопрос Если у вас вид на одной странице а форма на другой, то для чего это??

<xp_1:changeDynamicContentAction for="dynamicContent1"
facetName="document">
<xp_1:thys.parameters>
<xp:parameter name="action"
value="openDocument">
</xp:parameter>
<xp:parameter name="documentId"
value="#{javascript:rowData.getDocument().getNoteID()}">
</xp:parameter>
</xp_1:thys.parameters>
</xp_1:changeDynamicContentAction>

почему вы используете changeDynamicContentAction если вы просто открываете документ по клику по линку и почему это так реализовано? И при возврате на вид почему вы опять используете
changeDynamicContentAction for="dynamicContent1" facetName="view">
Нет и вид и форма на одной страницы. Да если на разных все работает. И надо как то вернуться с формы в вид на тоже место где было открытие формы
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 13:05 10
Так если вид и форма на одной странице то куда вы хотите вернуться если вы уже на странице где вид? Если вам нужно чтобы просто поменялся dynamicContent1 а не вид то просто уберите refreshMode="complete" а сделайте partial refresh dynamicContent1 и тогда вид останется такие каким был, но если вы в форме жмете кнопку с refreshMode="complete" и хотите чтобы вид остался прежним извините в такой конструкции pagersavestate не работает и вашей проблемы не решит конечно.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 13:21 11
Что вид при переходе с формы на вид (замена контента) скидывает пейджер на 1 страницу. Возврат сделал так

Код
<xp:button value="Label" id="button1">

<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="dynamicContent1">
<xp:thys.action>
<xp_1:changeDynamicContentAction for="dynamicContent1"
facetName="view">
</xp_1:changeDynamicContentAction>
</xp:thys.action></xp:eventHandler></xp:button>
Переход с вида на форму

Код
<xp:viewColumn columnName="Claim_Num_Disp" id="viewColumn6" displayAs="link" openDocAsReadonly="true">
<xp:viewColumnHeader value="№ заявки"
id="viewColumnHeader6">
</xp:viewColumnHeader>

<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="dynamicContent1">
<xp:thys.action>
<xp_1:changeDynamicContentAction facetName="document"
for="dynamicContent1">
</xp_1:changeDynamicContentAction>
</xp:thys.action></xp:eventHandler></xp:viewColumn>
На странице динамик контент выглядит так

Код
<xe:dynamicContent id="dynamicContent1" defaultFacet="view" useHash="true"><xp:thys.facets>
<xc:testDocumentDC xp:key="document"></xc:testDocumentDC>
<xc:testViewDC xp:key="view"></xc:testViewDC>
</xp:thys.facets></xe:dynamicContent>
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 13:44 12
а вот теперь мне все ясно Мое мнение подход этот накладывает некоторые ограничения. А чего вам мешает уйти от него и сделать 2 разных страницы одна с видом а одна с формой и тогда у вас все будет ок. Зачем так усложнять? Какие преимущества дает этот подход кроме явных недостатков. Ладно если по существу

то как открыть ту страницу что была можно тут
http://www.mydominolab.com/201... ation.html

открыть категорию что была можно увидеть как это делается тут

http://planetlotus.org/profile... uki_131142
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 14:07 13
А разные страницы если сделать то возникает другая проблема. С навигатор контрол в левой колонке в applicationLayout. У меня в нем содержаться пункты с подпунктами. Первоначально все пункты свернуты и при открытии формы на новой странице они также будут все свернуты. Может есть возможность передавать состояние navigator при переходе на новую страницую
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 14:24 14
у навигатора есть свойство keepState
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 139
16.12.2015, 14:55 15
Цитата Сообщение от Hogmuzzle
у навигатора есть свойство keepState
Пробовал у меня не работает. Если есть пример можешь выложить?
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 21
16.12.2015, 15:32 16
Извини не работает оказывается только если history.back то срабатывает а так нет.
Тогда добавь скринт на форму

Код (Javascript):
XSP.addOnLoad(function(){
var li = $(header.lotusMenuHeader).find(li.lotusSelected); //ищем выбранный li в навигаторе
var p = $(li).parents(li); //берем его родителя
$(p).css({display:}); // показываем submenu
})
0
16.12.2015, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2015, 15:32
Помогаю со студенческими работами здесь

Кнопка назад
Здравствуйте, любимые форумчане! Такой вопрос имеется у меня, который мучает меня в самых...

кнопка назад!!
как сделать кнопки назад и вперед??

Кнопка назад
есть программа в ней до 10 activity если переходить по ним, то далее при нажатии кнопки назад...

Кнопка назад в браузере
&lt;script&gt; window.onbeforeunload = function() { return &quot;You work will be lost.&quot;; }; &lt;/script&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru