重定向到另一个控件 DNN
Redirect to another control DNN
在我的自定义 DNN 模块的 Page_Load 事件中,我使用以下方法检索我存储的设置。
if (((string)Settings["username"] != null) && ((string)Settings["username"] != ""))
username = "";
{
username = (string)Settings["username"];
if (((string)Settings["password"] != null) && ((string)Settings["password"] != ""))
{
password = (string)Settings["password"];
}
if (((string)Settings["baseServiceUrl"] != null) && ((string)Settings["baseServiceUrl"] != ""))
{
baseServiceUrl = (string)Settings["baseServiceUrl"];
}
baseServiceUrl = "";
现在我的问题是如何将它重定向到我的模块设置(称为 settings.ascx)控制用户名、密码或 baseServiceurl 是否为空。
我敢肯定它不像 Response.Redirect('settings.ascx');
那么简单
我的目标是更换
用户名 = "";
带有类似于 Response.Redirect('settings.ascx');
的片段
请帮忙
如果您想加载在 DNN 中注册的不同 ASCX 文件(通过 MANIFEST 文件在模块定义中注册),您可以通过调用 EditUrl 方法或 NavigateURL 方法来实现在 DNN 中。
EditUrl("Settings") 其中 Settings 是模块定义中定义的 ControlKey。
编辑 URL 可从 PortalModuleBase 获取,假设您的控件继承自 PMB。
再次感谢克里斯,你的回答是正确的,但我决定通过模式弹出窗口获取模块的设置。这就是我为获得 javascript 弹出脚本的答案所做的,url 我使用 google chrome 右键单击齿轮图标并检查了元素。
然后我复制了锚标签href属性的内容,这个有点像
href="javascript:dnnModal.show('http://localhost/TestPage/ctl/Module/ModuleId/417?ReturnURL=/TestPage&popUp=true',/*showReturn*/false,550,950,true,'')">
在我的 default.aspx 页面中,我创建了一个没有 href 的锚标记。我通过放置 runat=server 并向其添加 ID 并将可见性设置为 false 使其成为服务器控件(在我的逻辑中,如果它不符合我的条件,我会使其可见)
<a runat="server" class="btn btn-success" id="settingsLink" visible="false" > <img src="/images/action_settings.gif"><span>Settings</span></a>
接下来我创建一个方法来动态构建我的 link
private string settingsUrlBuilder()
{
var s = new StringBuilder();
var urlPartArray = TabController.CurrentPage.FullUrl.ToString().Split('/');
var partUrl = urlPartArray[3].ToString();
s.Append("javascript:dnnModal.show('");
s.Append(TabController.CurrentPage.FullUrl.ToString().ToLower());
s.Append("/ctl/Module/ModuleId/" + ModuleId.ToString());
s.Append("?ReturnURL=/");
s.Append(partUrl);
s.Append("&popUp=true");
s.Append("',/*showReturn*/false,550,950,true,'')");
return s.ToString();
}
这是我在页面加载中使用函数的地方
settingsLink.HRef = settingsUrlBuilder(); settingsLink.Visible = true;
在我的自定义 DNN 模块的 Page_Load 事件中,我使用以下方法检索我存储的设置。
if (((string)Settings["username"] != null) && ((string)Settings["username"] != ""))
username = "";
{
username = (string)Settings["username"];
if (((string)Settings["password"] != null) && ((string)Settings["password"] != ""))
{
password = (string)Settings["password"];
}
if (((string)Settings["baseServiceUrl"] != null) && ((string)Settings["baseServiceUrl"] != ""))
{
baseServiceUrl = (string)Settings["baseServiceUrl"];
}
baseServiceUrl = "";
现在我的问题是如何将它重定向到我的模块设置(称为 settings.ascx)控制用户名、密码或 baseServiceurl 是否为空。
我敢肯定它不像 Response.Redirect('settings.ascx');
那么简单我的目标是更换 用户名 = "";
带有类似于 Response.Redirect('settings.ascx');
的片段请帮忙
如果您想加载在 DNN 中注册的不同 ASCX 文件(通过 MANIFEST 文件在模块定义中注册),您可以通过调用 EditUrl 方法或 NavigateURL 方法来实现在 DNN 中。
EditUrl("Settings") 其中 Settings 是模块定义中定义的 ControlKey。
编辑 URL 可从 PortalModuleBase 获取,假设您的控件继承自 PMB。
再次感谢克里斯,你的回答是正确的,但我决定通过模式弹出窗口获取模块的设置。这就是我为获得 javascript 弹出脚本的答案所做的,url 我使用 google chrome 右键单击齿轮图标并检查了元素。
然后我复制了锚标签href属性的内容,这个有点像
href="javascript:dnnModal.show('http://localhost/TestPage/ctl/Module/ModuleId/417?ReturnURL=/TestPage&popUp=true',/*showReturn*/false,550,950,true,'')">
在我的 default.aspx 页面中,我创建了一个没有 href 的锚标记。我通过放置 runat=server 并向其添加 ID 并将可见性设置为 false 使其成为服务器控件(在我的逻辑中,如果它不符合我的条件,我会使其可见)
<a runat="server" class="btn btn-success" id="settingsLink" visible="false" > <img src="/images/action_settings.gif"><span>Settings</span></a>
接下来我创建一个方法来动态构建我的 link
private string settingsUrlBuilder()
{
var s = new StringBuilder();
var urlPartArray = TabController.CurrentPage.FullUrl.ToString().Split('/');
var partUrl = urlPartArray[3].ToString();
s.Append("javascript:dnnModal.show('");
s.Append(TabController.CurrentPage.FullUrl.ToString().ToLower());
s.Append("/ctl/Module/ModuleId/" + ModuleId.ToString());
s.Append("?ReturnURL=/");
s.Append(partUrl);
s.Append("&popUp=true");
s.Append("',/*showReturn*/false,550,950,true,'')");
return s.ToString();
}
这是我在页面加载中使用函数的地方
settingsLink.HRef = settingsUrlBuilder(); settingsLink.Visible = true;