我见过的所有使用ResolveUrl的示例都有一个文字路径,如下所示:
window.location='<%= ResolveUrl("~/Account/Login.aspx") %>'然而,我已经解析了我希望从Infragistics的菜单上下文重定向到的WebDataMenu,并且我正在尝试将该变量传递给ResolveUrl。我使用的函数如下:
function menuMain_ItemSelected(sender, e) {
var menuContext = e._context.adr;
var intPartOfMenuContext = parseInt(menuContext);
if (menuContext !== intPartOfMenuContext.toString()) {
var selectedURL = e._props[2]._element.childNodes[0].href;
window.location = '<%= ResolveUrl(' + selectedURL + ') %>';
}
}问题是我在ResolveUrl行上得到了一个“字符文字中有太多字符”的错误。
下面是selectedURL的一个例子:
"http://localhost:52168/ITRequest/Person.aspx?MenuTitle=Users"仅供参考:最终,我要做的是让WebDataMenu工作,让用户点击它打开菜单,然后再次点击以选择并重定向到所选页面。但是,很明显,如果ActivateOnHover=为“False”(我需要这样做),则该控件只有在菜单打开后才会对向下箭头并按Enter键作出响应。所以,如果我漏掉了一些更明显的东西,我会洗耳恭听。
谢谢,丹
发布于 2013-02-22 00:00:37
显然,这是一个走得太远的案例。我找到的解决方案是简单地将ResolveUrl从代码行中完全删除,只留下下面的代码行,这对我很有效。
window.location = selectedURL;发布于 2013-10-09 05:09:17
我知道这很古老,但是为了更好的参考,下面是你如何正确地完成你想要做的事情:
function menuMain_ItemSelected(sender, e){
var selectedURL = /*Your code goes here*/;
window.location.href = ResolveUrl(selectedURL);
}
function ResolveUrl(url) {
var baseUrl = '<%= ResolveUrl("~/") %>';
if (url.indexOf("~/") == 0) {
url = baseUrl + url.substring(2);
}
return url;
}https://stackoverflow.com/questions/14607292
复制相似问题