webforms如何将多个表绑定到GridView

时间:2016-11-18 11:58:47

标签: asp.net sql-server gridview iqueryable

我做了我的研究,但我找不到一种方法将多个表从Entity框架连接到GridView控件而没有它们之间的东西,但我也没有偶然发现一个答案,说这不可能是完成。

我有三个表:Report,ReportType和Client。每个报告都有一个外键(链接到ID属性)到1个ReportTypes和1个客户端。在我正在制作的表中,我需要在Report表,ReportType的Name和Client的Name属性中放置一些列。

我是GridView的新手,我知道Entity正在使用IQueryables来获取表格。我知道我可以像这样得到ReportTypes和Clients Name:

List<Report> reports;
using (FinReports_ConceptEntities db = new FinReports_ConceptEntities())
{
    reports = db.Reports.Include(r => r.Client).Include(r => r.ReportType).ToList();
}

但是在GridView中我需要在ItemType属性中放置一个确切的类名,这意味着我需要为此创建一个新类,然后填充该类的列表,然后将其链接到GridView,并且该类必须是IQueryable,因为我需要它让GridView能够进行分页和搜索。如果你有多个GridView,这会产生很多工作。

注意我需要的GridView只是一个没有编辑,更新或删除的报告列表,一旦点击一行,就会将用户带到另一个页面。所有报告都将链接到另一个页面,但会话或地址栏中包含另一个类似ReportID的变量。

还要注意我正在寻找这样的解决方案,以简化代码。我知道我可以为每个使用多个表的GridView创建类,这是我需要的,但我也知道这会使我 personaly 认为可以在更短的时间内完成的代码复杂化。我知道我可以简单地循环填充一个填充的Reports列表并将所有数据存储在Table类中,但是我必须自定义搜索和分页算法。

问题
1)可以创建一个GridView,并将ItemType设置为Report(或者可能是其他不需要创建的类新类的东西)但是我可以通过外部链接方式创建-key属性的其他表?我认为设置自定义列可能会对该想法产生一些影响。
2)我可能错过了哪些其他选项?也许一个观点?
3)我如何在MVC中执行此操作? (也许只是关于这个主题的教程的链接。我只需要以GridView的方式了解WebForms和MVC之间的区别)

如果您已经知道可以帮助我的教程链接,请在答案中链接它,因为我对此的搜索效果不是很好,可能是因为我是ASP.NET的新手

0 个答案:

没有答案