对动态数据中父级的父级进行过滤



我的模型中有以下关系

餐厅->美食->菜品

在项目的列表页面上,我需要能够直接通过餐厅过滤。如何在ASP中做到这一点呢?. NET动态数据应用?

我刚刚使用EntityDataSource模拟了您的问题,一切都很好。考虑两种方法来解决你的问题。

第一种方法是使用QueryExtender控件和SearchExpression。您可以通过链接SearchExpression找到更多详细信息。

你可以在Steve的博客中找到关于动态数据的链接多列搜索的真实例子。如果您在动态数据站点中实现Steve的方法,您所需要做的就是更改Item元数据,例如

[MetadataTypeAttribute(typeof(Item.ItemMetadata))]
[MultiColumnSearch(
    "Item_Name", 
    "Item_Info", 
    "Cuisine.Restaurant.Restaurant_Name")]
public partial class Item
{
    internal sealed class ItemMetadata
    {
        public string Item_Name { get; set; }
        public string Item_Info { get; set; }
        public Cuisine Cuisine { get; set; }
    }
} 

现在你可以搜索自定义列表。aspx页面项目按餐厅名称(例如)。这是第一种方法。

第二种方法是在ItemList上使用WhereEntityDataSource属性。aspx页面

简单的例子:

<asp:EntityDataSource 
    ID="ItemGridDataSource" 
    runat="server" 
    EnableDelete="true" 
    OnSelecting="ItemGridDataSource_Selecting"
    OnSelected="ItemGridDataSource_OnSelected"
    Where="it.Cuisine.Restaurant.Restaurant_IsClose=false" />

或者

protected void Page_Load(object sender, EventArgs e)
{
    ItemGridDataSource.WhereParameters.Add(new Parameter("it.Cuisine.Restaurant.Restaurant_Name", TypeCode.String, yourValueFromDropDownForExample));
}
在后台代码。

更多信息:EntityDataSource

注:

我想给你推荐一本很棒的书ASP。. NET Dynamic Data Unleashed by Oleg Sych,在这里你可以找到更多关于扩展过滤的详细信息。

相关内容

  • 没有找到相关文章

最新更新