DataSourceID «V4QuicklaunchMenu» должен быть идентификатор контроля типа IHIERARCHICALDATATATATATASORCE
-
10-12-2019 - |
Вопрос
Я пытаюсь сделать левую панель навигации в SharePoint 2010 с этим Teckniq= http://www.helppmeonsharepoint.com/2012/03/custom-sharepoint-top-manu-and.html
у меня есть этот массаж ошибок :
Датазорсид 'v4quicklaunchmenu' должен быть идентификатором контроля типа IHIERARCHICALDATATATATATASORCE. Не удалось найти управление с идентификатором «QuickLaunchSitemap».
<Сильная> Ошибка Sorce:
Необработанное исключение было создано во время выполнения текущего веб-запроса. Информация о происхождении и местоположении исключения может быть идентифицирована с использованием следа стека исключения ниже.
TRACE Stack [httpException (0x80004005): DataSourceId 'v4quicklaunchmenu' должен быть идентификатором контроля типа iHierarchicalDataSource. Контроль с ID 'Quicklaunchsitemap' не найден.] System.web.ui.webcontrols.hierarchicaldataboundControl.getdataTasource () +2335265 System.web.ui.webcontrols.hierarchicaldataboundControl.connectTohierarchicalDataSource () +212 System.web.ui.webcontrols.hierarchicaldataboundControl.Onload (eventargs e) +28 System.web.ui.control.loadrecursive () +66 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.web.ui.control.loadrecursive () +191 System.Web.ui.page.processRequestmain (Boolean InductionSagebeforeasyncpoint, Boolean IndeStageAfterasyncpoint) +2428
Я нашел , что он может пчела много разных, чтобы узнать, почему эта гапендия. Я попытался изменить мой XML-файл без SUCSESS. Я надеюсь, что вы поймете, что я делаю не так. Я опубликую части моего кода, который я думаю, это актуальна, здесь мой код:
в web.config внутри sitemap-> поставщики я добавил это:
.<add name="CustomNavigationProvider" type="BNS.Intranet.HR.CustomPortalNavigation, BNS.Intranet.HR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" />
<Сильный> CS-файл
.namespace BNS.Intranet.HR { public class CustomPortalNavigation : PortalSiteMapProvider { public override SiteMapNodeCollection GetChildNodes(System.Web.SiteMapNode node) { PortalSiteMapNode pNode = node as PortalSiteMapNode; if (pNode != null) { if (pNode.Type == NodeTypes.Area) { SiteMapNodeCollection nodeColl = base.GetChildNodes(pNode); PortalSiteMapNode childNode = new PortalSiteMapNode(pNode.WebNode, "1", NodeTypes.Area, "http://sp2010dev04/navi/", "1", "1"); PortalSiteMapNode childNode1 = null; for (int i = 0; i < 20; i++) { childNode1 = new PortalSiteMapNode(childNode.WebNode, "1.1" + i, NodeTypes.Area, "http://sp2010dev04/navi", "1.1", "1.1"); } nodeColl.Add(childNode); SiteMapNodeCollection test = new SiteMapNodeCollection(); if (childNode1 != null) { test.Add(childNode1); childNode.ChildNodes = test; } return nodeColl; } else // Shouldn't it always return base.GetChildNodes? return base.GetChildNodes(pNode); } else // Only return new SiteMapNodeCollection when pNode is null? return new SiteMapNodeCollection(); }
Элементы .xml-файл .<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Control Id="QuickLaunchDataSource" Sequence="30" ControlClass="System.Web.UI.WebControls.SiteMapDataSource" ControlAssembly="System.Web, Version=2.0.3600.0, Culture=Neutral, PublicTokenKey=71e9bce111e9429"> <Property Name="ID">QuickLaunchSiteMap</Property> <Property Name="SiteMapProvider">CustomSiteMapProvider</Property> <Property Name="EnableSecurityTrimming">false</Property> <Property Name="EnableViewState">true</Property> <Property Name="ShowStartingNode">false</Property> <Property Name="StartingNodeOffset">0</Property> <Property Name="StartFromCurrentNode">false</Property> </Control> <HideCustomAction Id="QuickLaunch" HideActionId="QuickLaunch" GroupId="Customization" Location="Microsoft.SharePoint.SiteSettings" /> </Elements>
Мой делегат элементы управления в MasterPage .<SharePoint:DelegateControl ID="DelegateControl5" runat="server" ControlId="QuickLaunchDataSource"> <Template_Controls> <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="QuickLaunchSiteMap" StartingNodeUrl="sid:1025" runat="server" /> </Template_Controls> </SharePoint:DelegateControl>
Два новых
.<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="DelegateControl8"> <Template_Controls> <asp:SiteMapDataSource ShowStartingNode="False" SiteMapProvider="SPNavigationProvider" id="SiteMapDataSource1" runat="server" StartingNodeUrl="sid:1002"/> </Template_Controls> </SharePoint:DelegateControl> <SharePoint:DelegateControl ID="DelegateControl9" runat="server" ControlId="QuickLaunchDataSource"> <Template_Controls> <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="SiteMapDataSource2" StartingNodeUrl="sid:1025" runat="server" /> </Template_Controls> </SharePoint:DelegateControl>
Решение
Try adding Both Delegate controls and it should resolve your problem.