Я использую asp: Меню для отображения меню. Элемент управления меню использует карту сайта в качестве источника данных. Теперь я хочу удалить некоторые дочерние узлы из узла карты сайта на основании разрешения. Я пытался манипулировать Mennuitems, но не смог удалить этот дочерний узел.
Это код для моего меню
<td class="TRMenu" valign="middle" align="left">
<asp:Menu ID="menu" runat="server" CssClass="menu" EnableViewState="False" Orientation="Horizontal"
DataSourceID="newSiteMap">
</asp:Menu>
<asp:SiteMapDataSource ID="newSiteMap" runat="server" ShowStartingNode="False" StartingNodeUrl="~/_PL/SPONSOR/Default.aspx" />
</td>
Это код моей карты сайта
<siteMapNode url="~/_PL/SPONSOR/Default.aspx" title="SPONSOR" description="SPONSOR">
<siteMapNode url="~/_PL/SPONSOR/Home.aspx" title="HOME" description="HOME" />
<siteMapNode url="~/_PL/SPONSOR/Default.aspx?0" title="Dash Board" description="Dash Board" />
<siteMapNode url="~/_PL/SPONSOR/SiteViewAll.aspx" title="Site Info." description="Site Information" id="Site">
<siteMapNode url="~/_PL/SPONSOR/Site.aspx" title="Add/Update Site Info." description="Add/Update Site Information" id="Add"/>
<siteMapNode url="~/_PL/SPONSOR/SiteViewAll.aspx?0" title="View Site Info." description="View Site Information" />
</siteMapNode>
<siteMapNode url="~/_PL/SPONSOR/UserViewAll.aspx" title="User Info." description="User Info" >
<siteMapNode url="~/_PL/SPONSOR/User.aspx?New" title="Add/Update User Info." description="Add/Update User Information" />
<siteMapNode url="~/_PL/SPONSOR/UserViewHirerchical.aspx" title="View Hirerchical User" description="View Hirerchical User Information" />
<siteMapNode url="~/_PL/SPONSOR/UserViewAll.aspx?0" title="View User Info." description="View User Information" />
</siteMapNode>
<!--<siteMapNode url="~/_PL/SPONSOR/CRFProtocol.aspx" title="CRF Protocol" description="CRF Protocol" />-->
<siteMapNode url="~/_PL/SPONSOR/eCRFDownload.aspx" title="CRF Download Forms" description="CRF Download Forms" />
<siteMapNode url="~/_PL/SPONSOR/LogSheet.aspx" title="Log Sheet" description="Log Sheet" />
<siteMapNode url="~/Default.aspx?logout=SPONSOR" title="Logout" description="Logout" />
</siteMapNode>
Я хочу удалить узел ниже на основании разрешения
<siteMapNode url="~/_PL/SPONSOR/Site.aspx" title="Add/Update Site Info." description="Add/Update Site Information" id="Add"/>
Я попробовал следующий метод.
protected void Page_Unload(object sender, EventArgs e)
{
foreach (MenuItem Item in menu.Items)
{
if (Item.Text.Contains("Site"))
{
string str = Item.ChildItems[0].Text;
Item.ChildItems.RemoveAt(0);
}
}
}
Я пробовал это также в методах загрузки страницы и prerender, но узел все еще находится там, когда страница загружена.
Как я могу это удалить .?