DotNetNuke 嵌套控件重定向方法
DotNetNuke Nested Controls Redirection Method
有任何 DNN 开发人员解决了这个问题吗?
我有一个带有 4 个用户控件的用户控件 (ascx)(DotNetNuke 扩展名)。第一个视图表单上有按钮可以访问其他视图。
当您访问另一个控件时,您可以从该控件访问其他控件。我正在寻找将用户重定向回用户之前使用的控件的最佳方法,而不管控件的 'level'。
举个例子。
1) 第一种查看形式:人物列表
可用按钮:
2) 用户地址
3) 用户下载
4) 用户视频
5) 另一个用户相关模块
假设我选择 2) 用户地址
在该用户控件上,我有按钮 3、4 和 5
如果我想 return 到第一个视图控件 (1),我只需使用 DotNetNuke.Nvigation.NavigateURL 并传入我正在查询的用户参数。效果不错。
但现在我没有返回 1,而是选择转到 3) 用户下载
当用户点击 'Return' 按钮转到上一个屏幕时(不是浏览器后退按钮;这是我表单上的一个按钮)我想返回到 2) 用户地址,而不是返回到第一个视图控件(1).
我尝试将第一个视图控件添加为同一扩展中的另一个控件,并使用 EditURL 调用它,但屏幕在重定向时显示为空白(DNN 菜单等除外)。
如何将用户重定向到上一个控件,而不是模块的第一个控件?
如果这没有意义,请告诉我,我会尽力解释得更好。
谢谢。
您可能希望将请求中的查询字符串参数传递给各种控件,以便您可以跟踪它们的位置以及如何返回。
示例:
而不是仅仅调用 ctl=controlvalue 尝试调用 ctl=controlvalue&prevvalue=edit
然后您可以连接您的 Return 代码以使用 "prevvalue"
的查询字符串值
克里斯
查看我在 Module Views, Settings & Navigation 上的 DNNHero.com 视频教程。我提供了有关执行模块视图导航的不同方式的代码和说明。
我决定为此编写一个自定义解决方案。效果确实不错,就是有点牵强。
1) 我写了一个 SourceType 枚举来列出我应用程序中的不同形式。
2) 任何页面都可以作为“基页”。加载表单时,我在 "base page url" 的设置中读取了 属性,如果还没有,我会写下基页的 rawurl到设置以及它是哪种形式 (SourceType) 的枚举值。
3) 由于子控件都使用与基页相同的设置,因此每当发生导航时,我将基页的枚举值传递给新表单;在新表单中,我阅读了新表单 Page_Load 中的基页 URL,如果当前表单的枚举值与传入的枚举值(它是)不同,我将使用它基础 URL 为 link 'back'.
4) 如果用户从第二个表单转到另一个表单,则重复该过程。但是我将两个 'prevous' 表单枚举都传递给第三个表单,因此它显示了两个 link 可供选择的 return 到。
5)这个可以尽可能长的重复。一个警告:在将 SourceForms 属性 传回以前的表单之前,您必须从 SourceType 枚举中删除当前表单;如果您不这样做,您来自的表单也将被列为您不想要的 'go back to' 表单。
希望这可以帮助那些在模块中的多个控件中找出干净的 DNN 重定向解决方案有困难的人。
如果不清楚,请联系我,我会展示我的一些代码。
有任何 DNN 开发人员解决了这个问题吗? 我有一个带有 4 个用户控件的用户控件 (ascx)(DotNetNuke 扩展名)。第一个视图表单上有按钮可以访问其他视图。 当您访问另一个控件时,您可以从该控件访问其他控件。我正在寻找将用户重定向回用户之前使用的控件的最佳方法,而不管控件的 'level'。
举个例子。
1) 第一种查看形式:人物列表
可用按钮:
2) 用户地址 3) 用户下载 4) 用户视频 5) 另一个用户相关模块
假设我选择 2) 用户地址
在该用户控件上,我有按钮 3、4 和 5
如果我想 return 到第一个视图控件 (1),我只需使用 DotNetNuke.Nvigation.NavigateURL 并传入我正在查询的用户参数。效果不错。
但现在我没有返回 1,而是选择转到 3) 用户下载 当用户点击 'Return' 按钮转到上一个屏幕时(不是浏览器后退按钮;这是我表单上的一个按钮)我想返回到 2) 用户地址,而不是返回到第一个视图控件(1).
我尝试将第一个视图控件添加为同一扩展中的另一个控件,并使用 EditURL 调用它,但屏幕在重定向时显示为空白(DNN 菜单等除外)。
如何将用户重定向到上一个控件,而不是模块的第一个控件?
如果这没有意义,请告诉我,我会尽力解释得更好。
谢谢。
您可能希望将请求中的查询字符串参数传递给各种控件,以便您可以跟踪它们的位置以及如何返回。
示例:
而不是仅仅调用 ctl=controlvalue 尝试调用 ctl=controlvalue&prevvalue=edit
然后您可以连接您的 Return 代码以使用 "prevvalue"
的查询字符串值克里斯
查看我在 Module Views, Settings & Navigation 上的 DNNHero.com 视频教程。我提供了有关执行模块视图导航的不同方式的代码和说明。
我决定为此编写一个自定义解决方案。效果确实不错,就是有点牵强。
1) 我写了一个 SourceType 枚举来列出我应用程序中的不同形式。
2) 任何页面都可以作为“基页”。加载表单时,我在 "base page url" 的设置中读取了 属性,如果还没有,我会写下基页的 rawurl到设置以及它是哪种形式 (SourceType) 的枚举值。
3) 由于子控件都使用与基页相同的设置,因此每当发生导航时,我将基页的枚举值传递给新表单;在新表单中,我阅读了新表单 Page_Load 中的基页 URL,如果当前表单的枚举值与传入的枚举值(它是)不同,我将使用它基础 URL 为 link 'back'.
4) 如果用户从第二个表单转到另一个表单,则重复该过程。但是我将两个 'prevous' 表单枚举都传递给第三个表单,因此它显示了两个 link 可供选择的 return 到。
5)这个可以尽可能长的重复。一个警告:在将 SourceForms 属性 传回以前的表单之前,您必须从 SourceType 枚举中删除当前表单;如果您不这样做,您来自的表单也将被列为您不想要的 'go back to' 表单。
希望这可以帮助那些在模块中的多个控件中找出干净的 DNN 重定向解决方案有困难的人。
如果不清楚,请联系我,我会展示我的一些代码。