<< 点击显示目录 >> 主页 mappView帮助助手 > mapp View帮助信息 > 指南 > FAQs > 事件和行动应用 > Back button (navigation)后退按钮(导航) |
这个例子演示了以下用例。
应该实现一个按钮,返回到当前页面打开时的那个页面。
•Page_A → Page_Z:点击 Page_Z上的"Back返回 "按钮 ,就会导航到A页。
•Page_B → Page_Z:点击 Page_Z上的"Back返回"按钮 ,可以导航到B页。
这个功能可以用一个 按钮部件 、 会话变量 和 事件绑定轻松实现 。
在导航过程中,最后的页面ID将被存储在一个类型 为ANY_STRING的会话变量中 。会话变量是在HMI应用程序包的 "变量 "逻辑视图中的.svar文件中创建的。
<Variable name="NavigationBack" xsi:type="ANY_STRING" value="" />
在第一个事件绑定中,返回值 oldValue 被写入 系统变量 ::SYSTEM:clientInfo.currentPageId 的 ValueChanged 事件中 , 作为会话动作 SetValueString的 动态参数 。
<EventBinding>
<Source xsi:type="session.Event" refId="::SYSTEM:clientInfo.currentPageId" event="ValueChanged" />
<EventHandler>
<Action>
<Target xsi:type="session.VariableAction" refId="NavigationBack" >
<Method xsi:type="session.VariableAction.SetValueString" value="=oldValue" />
</Target>
</Action>
</EventHandler>
</EventBinding>
会话变量 NavigationBack 现在包含了导航到当前页面的页面的ID。
Page_Z上的一个按钮部件的事件 点击Click 在第二个事件绑定中被响应。
使用一个操作数,会话变量 NavigationBack 被读取并指定为客户端系统方法 Navigate的 动态参数 。
<EventBinding>
<Source xsi:type="widgets.brease.Button.Event" contentRefId="Content_Z" widgetRefId="ButtonBack" event="Click" />
<Operand name="OldPageId" datatype="ANY_STRING">
<ReadTarget xsi:type="session.VariableAction.Read" refId="NavigationBack" >
<Method xsi:type="session.VariableAction.GetValue" />
</ReadTarget>
</Operand>
<EventHandler>
<Action>
<Target xsi:type="clientSystem.Action">
<Method xsi:type="clientSystem.Action.Navigate" pageId="=OldPageId" />
</Target>
</Action>
</EventHandler>
</EventBinding>