Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 故障过滤栅_C#_Asp.net_Telerik - Fatal编程技术网

C# 故障过滤栅

C# 故障过滤栅,c#,asp.net,telerik,C#,Asp.net,Telerik,故事: 我们有三张不同的桌子。时间报告、档案、BU 第一个连接到第二个,一对多。 第二个连接到第三个,一对多。 我们希望使用radgrid组件来显示“时间报告”。 我们为“DossierId”内置了过滤器,并显示属性“Description”。 这个很好用 我们现在的问题是,我们想要显示和过滤例如BU.BUId和BU.Code。 我们尝试了几种方法,使用java脚本或代码隐藏。 不幸的是,它不起作用。 问题似乎是我们希望通过两个表访问属性。(从“档案”上方的“时间报告”到“BU”) 此代码在“

故事: 我们有三张不同的桌子。时间报告、档案、BU 第一个连接到第二个,一对多。 第二个连接到第三个,一对多。

我们希望使用radgrid组件来显示“时间报告”。 我们为“DossierId”内置了过滤器,并显示属性“Description”。 这个很好用

我们现在的问题是,我们想要显示和过滤例如BU.BUId和BU.Code。 我们尝试了几种方法,使用java脚本或代码隐藏。 不幸的是,它不起作用。 问题似乎是我们希望通过两个表访问属性。(从“档案”上方的“时间报告”到“BU”)

此代码在“TimeReportGrid.Rebind()”上引发错误

在当前加载的架构中,“Dossier.BUId”不是“Model.TimeReport”类型的成员。第6行第5列转义标识符附近。

如有必要,请随时提问


感谢您的帮助和快速回答。

看起来您遇到了一个问题,在您进行筛选和重新绑定时,EntityFramework对象与数据库断开连接,并且无法延迟加载您尝试筛选的内容。尝试在加载网格的初始查询中使用语句,以便要筛选的表在正在筛选的断开连接的集合中可用


代码示例-具有以下代码优先实体框架对象:

public class MyContext : DbContext
{

    public DbSet<TimeReport> TimeReport { get; set; }

    public DbSet<Dossier> Dossier { get; set; }

    public DbSet<BU> BU { get; set; }

}

public class BU
{

    public int BUId { get; set; }

    public string Code { get; set; }

}

public class Dossier
{

    public int DossierId { get; set; }

    [ForeignKey("BU")]
    public int BUId { get; set; }

    public BU BU { get; set; }

}

public class TimeReport
{

    public int TimeReportId { get; set; }

    [ForeignKey("Dossier")]
    public int DossierId { get; set; }

    public Dossier Dossier { get; set; }

}
这种联系是有效的

查看此链接以了解有关如何为

protected void RadComboBoxTitle_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) 
{ 
    RadComboBox buCombo = sender as RadComboBox; 

    ViewState["buComboValue"] = buCombo.SelectedValue; 

    TimeReportGrid.MasterTableView.FilterExpression = "(it.[Dossier.BUId] = " + buCombo.SelectedValue + ")"; 
    GridColumn column = TimeReportGrid.MasterTableView.GetColumnSafe("BUId"); 
    column.CurrentFilterFunction = GridKnownFunction.EqualTo; 
    column.CurrentFilterValue = buCombo.SelectedValue; 
    TimeReportGrid.Rebind(); 
} 
protected void RadComboBoxTitle_PreRender(object sender, EventArgs e) 
{ 
    if (ViewState["buComboValue"] != null) 
    { 
        RadComboBox buCombo = sender as RadComboBox; 
        buCombo.SelectedValue = ViewState["buComboValue"].ToString(); 
    } 
} 
public class MyContext : DbContext
{

    public DbSet<TimeReport> TimeReport { get; set; }

    public DbSet<Dossier> Dossier { get; set; }

    public DbSet<BU> BU { get; set; }

}

public class BU
{

    public int BUId { get; set; }

    public string Code { get; set; }

}

public class Dossier
{

    public int DossierId { get; set; }

    [ForeignKey("BU")]
    public int BUId { get; set; }

    public BU BU { get; set; }

}

public class TimeReport
{

    public int TimeReportId { get; set; }

    [ForeignKey("Dossier")]
    public int DossierId { get; set; }

    public Dossier Dossier { get; set; }

}
TimeReportGrid.MasterTableView.FilterExpression = "(it.Dossier.BUId = " + buCombo.SelectedValue + ")";