Asp.net mvc 多源网格滤波

Asp.net mvc 多源网格滤波,asp.net-mvc,asp.net-mvc-3,entity-framework,telerik-grid,telerik-mvc,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,Telerik Grid,Telerik Mvc,我有一个telerik mvc网格,它的数据来自两个不同的来源 假设我有一个这样的模型: public class Customer { public string Name {get;set;} public Guid CreatorUserId {get;set;} public string CreatorUsername { get {

我有一个telerik mvc网格,它的数据来自两个不同的来源

假设我有一个这样的模型:

    public class Customer
    {
       public string Name {get;set;}
       public Guid CreatorUserId {get;set;}
       public string CreatorUsername 
       {
            get
            {
                return System.Web.Security.Membership.GetUser(CreatorUserId).UserName;
            }
       }
}
我将客户信息保存在一个类似于customer(Id,Name,CreatorUserId)的表中,然后CreatorFullname来自成员资格提供者(连接到Active Directory)

如果我将上述模型绑定到Telerik网格(启用ajax选项),那么一切都正常(分页、ajax分页等等)。另外,对CreatorUsername进行排序也很有效(虽然不正确),但主要问题是过滤。它失败,因为CreatorUsername不是主源中Customer表的一部分


如何克服这个问题?(特别是当我使用Telerik MVC网格时)

您是否尝试过实现一个外键列,如中的外键列?正如您在演示中看到的,EmployeeID列与其他列不在同一个表中,但您可以通过它对网格进行完美的过滤。

正如我所说,所需的列不在同一个数据库中。它位于Active Directory中,即使它不是来自同一个数据库,您需要做的只是拥有一个包含广告信息的对象作为字段,或者为网格提供您正在查找的这些广告字段的IEnumerable。此外,您还可以考虑使用一种模式,该模式允许您在网格和数据之间提供一个附加层,允许您在提交回数据库之前更新该层。Carl,问题不在于显示或更新数据。当我想使用列过滤(由telerik grid自动完成,我对此没有任何控制)时,就会出现问题。它会在“CreatorUsername”筛选时引发错误,这是因为转换和合并sql查询中的列。我需要一个解决方案,让我在telerik MVC网格上对senario s的过滤/排序有更多的控制权。