C# sitemapdatasource不调用OnDataBinding?
我想使用C# sitemapdatasource不调用OnDataBinding?,c#,asp.net,data-binding,sitemapprovider,C#,Asp.net,Data Binding,Sitemapprovider,我想使用OnDataBinding事件过滤web.sitemap中的条目,但它不会执行。我希望有功能,它允许我验证用户角色是否有权访问特定功能 我创建了一个包含函数列表和链接表的表来构建特权。我将允许管理员添加新角色,并为他们提供一组允许的功能,而不是使用IsInRole,因为IsInRole似乎不够灵活,无法满足我的需要 因此,我添加了以下内容: <asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingN
OnDataBinding
事件过滤web.sitemap
中的条目,但它不会执行。我希望有功能,它允许我验证用户角色是否有权访问特定功能
我创建了一个包含函数列表和链接表的表来构建特权。我将允许管理员添加新角色,并为他们提供一组允许的功能,而不是使用IsInRole,因为IsInRole似乎不够灵活,无法满足我的需要
因此,我添加了以下内容:
<asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingNode="false" OnDataBinding="MainMenu_DataBinding" SiteMapProvider="SiteMap1"></asp:sitemapdatasource>
其中SiteMap是web.config条目:
<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
似乎没有调用
main菜单\u数据绑定
。我没有找到任何合适的解释。我的代码有什么问题吗?这是因为SiteMapDatasource
只是一个数据源控件,它自己什么都不做
您实际上必须使用它,例如:
<asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server"
Orientation="Horizontal" RenderingMode="Table"
StaticSubMenuIndent="16px">
<StaticSelectedStyle Font-Bold="True" />
</asp:Menu>
这是因为SiteMapDatasource
只是一个数据源控件它自己什么都不做
您实际上必须使用它,例如:
<asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server"
Orientation="Horizontal" RenderingMode="Table"
StaticSubMenuIndent="16px">
<StaticSelectedStyle Font-Bold="True" />
</asp:Menu>
不幸的是,添加此菜单后,我仍然无法从sitemapdatasource获取OnDataBinding。我应该使用菜单事件吗?我刚刚做了一个实验,你是对的,但是如果你调用你的页面:this.DataBind()
在您的页面加载事件中,您的事件被触发。但是,通常的处理方法是处理数据绑定控件的事件,而不是数据源控件的事件。不幸的是,在添加此菜单后,我仍然无法从sitemapdatasource获取OnDataBinding。我应该使用菜单事件吗?我刚刚做了一个实验,你是对的,但是如果你调用你的页面:this.DataBind()
在您的页面加载事件中,您的事件被触发。但是,通常的处理方法是处理数据绑定控件的事件,而不是来自数据源控件的事件。