我正在使用RadPanelBar在我的母版页上调用asp数据源
<telerik:RadPanelBar ID="NavigationPanelBar" runat="server" DataSourceID="ViewUserPageNavigation"
Skin="Web20" Width="100%" AllowCollapseAllItems="true" DataTextField="PageDescription"
DataFieldID="CategoryId" DataFieldParentID="ParentId" DataNavigateUrlField="PageURL"
CssClass="NavContainer">
</telerik:RadPanelBar>
<data:ViewUserPageNavigationDataSource runat="server" ID="ViewUserPageNavigation"
SelectMethod="GetPaged">
<Parameters>
<asp:ControlParameter Name="WhereClause" ControlID="__Page" PropertyName="ViewUserPageNavigationWhereClause"
Type="String" />
<asp:ControlParameter Name="OrderBy" ControlID="__Page" PropertyName="ViewUserPageNavigationOrderBy"
Type="String" />
</Parameters>
</data:ViewUserPageNavigationDataSource>
在代码后面的母版页上我有两个参数
public String ViewUserPageNavigationWhereClause
{
get
{
String where = "UserId = " + HttpContext.Current.User.Identity.Name.ToString() + "";
return where;
}
}
public String ViewUserPageNavigationOrderBy
{
get
{
String orderBy = "tblpages.PageDescription";
return orderBy;
}
}
但是我收到的错误是我的子页面不包含ViewUserPageNavigationWhereClause
DataBinding:'ASP.secure_index_aspx'不包含名为'ViewUserPageNavigationWhereClause'的属性。
secure_index_aspx
是我的子页masterpage.Masterpage
是我的主页
答案 0 :(得分:0)
我想我有点误解了这个问题,所以我重写了我的答案:
据我所知,您无法从子页面访问母版页的数据源。是否有特定原因使datasrouce位于母版页而不是子页面上?
此设置的替代方法(如果您只是寻找可重用性)是创建一个继承自页面对象的类,并将数据源控件和方法添加到该类。使站点中的所有页面都从新类而不是页面对象继承。
编辑:在我们在下面的评论中进行讨论之后,问题似乎是你不小心访问了__page对象而不是母版页上的控件。
如果您尝试访问代码隐藏中的属性而不是页面上的控件,请尝试使用&#34;此&#34;而不是__page。如果这不起作用,您应该重新考虑您的策略。您还可以将这些属性放入会话变量中,并使用会话参数。