Asp.net mvc 多源网格滤波
我有一个telerik 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 {
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的过滤/排序有更多的控制权。