任何DNN开发人员都知道这一点? 我有一个用户控件(ascx)(DotNetNuke扩展),有4个用户控件。第一个视图表单上有按钮可以访问其他视图。 当您访问另一个控件时,您可以从该控件访问其他控件。我正在寻找将用户重定向到用户所在的上一个控件的最佳方式,而不管其级别是多少?'对照。
以下是一个例子。
1)第一个视图表单:人员列表
可用按钮:
2)用户地址 3)用户下载 4)用户视频 5)另一个用户相关模块
我们说我选择2)用户地址
在该用户控件上,我有3,4和5的按钮
如果我想返回第一个视图控件(1),我只需使用DotNetNuke.Nvigation.NavigateURL并传入我正在查询的用户的参数。这很好。
但现在我没有回到1,而是选择3)用户下载 当用户点击“返回”时按钮转到上一个屏幕(不是浏览器后退按钮;这是我表单上的一个按钮)我想回到2)用户地址,而不是回到第一个视图控件(1)。
我已尝试将第一个视图控件添加为同一扩展程序中的另一个控件,并使用EditURL调用它,但屏幕在重定向时显示为空白(DNN菜单等除外)。
如何将用户重定向到上一个控件,而不是模块的第一个控件?
如果这没有意义,请告诉我,我会尝试更好地解释它。
感谢。
答案 0 :(得分:0)
您可能希望将请求中的查询字符串参数传递给各种控件,以便您可以跟踪它们的位置以及如何返回。
示例:
不要只是调用ctl = controlvalue而是尝试调用ctl = controlvalue& prevvalue = edit
您可以将返回代码连接起来,以使用" prevvalue"的查询字符串值。
克里斯
答案 1 :(得分:0)
在Module Views, Settings & Navigation上查看我的DNNHero.com视频教程。我给出了关于进行模块视图导航的不同方法的代码和指令。
答案 2 :(得分:0)
我决定为此编写一个自定义解决方案。它运作得很好,但它有点牵扯。
1)我写了一个SourceType枚举来列出我的应用程序中的不同表单。
2)任何页面都可以作为基页。"在表单加载时,我在"基页url"的设置中读取了一个属性。如果它还没有,我将基页的rawurl写入设置以及它的形式(SourceType)的枚举值。
3)由于子控件都使用与基页相同的设置,因此每当导航发生时,我都会将基页的枚举值传递给新表单;在新表单中,我读取新表单的Page_Load中的基页URL,如果当前表单的枚举值与传入的枚举值不同(它是),我使用该基本URL链接'返回'。
4)如果用户从第二个表单转到另一个表单,则重复该过程。但是,我通过了两个流行的'将枚举形成为第三个表单,以便显示两个可供选择的链接返回。
5)这可以尽可能地重复。需要注意的一点是:在将SourceForms属性传递回上一个表单之前,必须从SourceType枚举中删除当前表单;如果你不这样做,你来自的表格也会被列为'回到'你不想要的形式。
希望这可以帮助某些人在模块中的多个控件中找出干净的DNN重定向解决方案。
如果这不清楚,我会展示一些代码。