하여 탭 ID를 찾을 수 있습니다 시작하기 ,이 게시물은 조금 오래되었고 누군가가 여전히 해결책을 찾고 있는지 나는 모른다. 나는 최근에 여기에이 문제를 가지고 내가 쓴 코드의 조각을 해결하는 것입니다 : 당신은 몇 가지 추가 정보가있는 경우에 따라서는 유용 할 수
public int GetTabIDFromUrl(string url, int portalID)
{
int getTabIDFromUrl = 0;
// Try the "old" way with the TabID query string
if (url.ToLower().IndexOf("tabid") > 0)
{
Int32.TryParse(Regex.Match(url, "tabid[=/](\\d+)", RegexOptions.IgnoreCase).Groups[1].Value, out getTabIDFromUrl);
}
// When there is no result (because of advanced or human friendly or whatever Url provider)
if (getTabIDFromUrl == 0)
{
TabCollection tabs = TabController.Instance.GetTabsByPortal(portalID);
foreach (KeyValuePair<int, TabInfo> k in tabs)
{
TabInfo tab = k.Value;
if (tab.FullUrl.StartsWith(url))
{
getTabIDFromUrl = tab.TabID;
break;
}
}
}
return getTabIDFromUrl;
}
이 페이지의 여지가 사이트에 통증이있을 수 있습니다 반복해야하는 목록을 줄이려면 - 예를 들어 이 탭에 배치 된 모듈의의 moduleID :
public int GetTabIDFromUrl(string url, int moduleID, int portalID)
{
int getTabIDFromUrl = 0;
// Try the "old" way with the TabID query string
if (url.ToLower().IndexOf("tabid") > 0)
{
Int32.TryParse(Regex.Match(url, "tabid[=/](\\d+)", RegexOptions.IgnoreCase).Groups[1].Value, out getTabIDFromUrl);
}
// When there is no result (because of advanced or human friendly or whatever Url provider)
if (getTabIDFromUrl == 0)
{
IList<ModuleInfo> modules = ModuleController.Instance.GetTabModulesByModule(moduleID);
foreach (ModuleInfo module in modules)
{
TabInfo tab = TabController.Instance.GetTab(module.TabID, portalID);
if (tab.FullUrl.StartsWith(url))
{
getTabIDFromUrl = tab.TabID;
break;
}
}
}
return getTabIDFromUrl;
}
희망 사람을 도움이 ...
해피 DNNing! 마이클
페이지에 있습니다. –
아니, 그게 문제 야. 미안하다. 그렇지 않으면 어떤 문제도 없을 것입니다. – jerone