NavigateURL 和 EditUrl的用法和区别及在NavigateURL中传多个值问题
在DNN中,
NavigateURL的命名空间:DotNetNuke.Common.Globals
函数:
A1、 public static System.String NavigateURL ( System.Int32 TabID , System.Boolean IsSuperTab , DotNetNuke.Entities.Portals.PortalSettings settings , System.String ControlKey , params string[] AdditionalParameters )
A2、 public static System.String NavigateURL ( System.Int32 TabID , DotNetNuke.Entities.Portals.PortalSettings settings , System.String ControlKey , params string[] AdditionalParameters )
A3、 public static System.String NavigateURL ( System.Int32 TabID , System.String ControlKey , params string[] AdditionalParameters )
A4、 public static System.String NavigateURL ( System.Int32 TabID , System.String ControlKey )
A5、 public static System.String NavigateURL ( System.String ControlKey )
A6、 public static System.String NavigateURL ( System.Int32 TabID , System.Boolean IsSuperTab )
A7、 public static System.String NavigateURL ( System.Int32 TabID )
A8、 public static System.String NavigateURL ( )
EditUrl 的
命名空间:DotNetNuke.Entities.Modules.PortalModuleBase
函数:
B1、 public System.String EditUrl ( System.String KeyName , System.String KeyValue , System.String ControlKey , params string[] AdditionalParameters )
B2、 public System.String EditUrl ( System.String KeyName , System.String KeyValue , System.String ControlKey )
B3、 public System.String EditUrl ( System.String KeyName , System.String KeyValue )
B4、 public System.String EditUrl ( System.String ControlKey )
B5、 public System.String EditUrl ( )
可以看出EditUrl主要用于页面内控件间的跳转ControlKey,可传递参数对KeyName\KeyValue, 如: Response.Redirect(EditUrl("detail"), True)等
而NavigateURL利用Tabid可以在页面间跳转,也可以传递多个参数对,使用范围更广
对于在NavigateURL中传多个参数对问题,我是这么做的:
hypTitle.NavigateUrl = NavigateURL(tabinfo.TabID, Null.NullString, "ItemID=" + itID.ToString(), "CategoryID=" + CategoryList.TrimEnd(","))
要注意格式和写法!
上述方法经过我实践的检验是成功的!