我正在尝试在MVC3中创建可扩展的网格。这是this的后续问题。 基本上我有一个复杂的SQL查询,我需要用它来填充MVC3中网格中的一组字段。网格元素也必须是可扩展的,并且在扩展时应显示其他数据。
例如 我有两个SQL查询
Query A
select * from large tables joined
Query B
select data from selected row in query A
查询A代表我用来填充网格的第一个查询。在扩展网格时,我必须通过使用查询B从A扩展行来显示其他数据。 我正在创建一个视图模型,其中包含我可以传递给视图的网格第一行中所需的所有字段。
Questions:
1.) How do I directly use sql to pass the data into the views instead of joining the models
2.) How do I make the grid expandable to show additional data?
3.) How do I model my sql, do I create one query for both and then selectively show data?
警告:MVC3 noob
答案 0 :(得分:0)
答案内联
问题:
1.) How do I directly use sql to pass the data into the views instead of joining the models
这取决于,您要么预先传递所有内容并写出隐藏字段,要么隐藏包含所有数据的JSON对象,并在字段展开时显示它。这样:渲染网格中的所有数据并隐藏每个项目直到需要它,或者从数组中动态加载它并在用户展开时显示它。当用户点击一行时,你也可以动态获取所需的数据,但是当你通过ajax获取数据时你需要显示一个等待图像(这对于mvc来说相当容易)
2.) How do I make the grid expandable to show additional data?
网上有大量可扩展的html网格结果:)依赖显示你要隐藏/显示它。
3.) How do I model my sql, do I create one query for both and then selectively
这取决于上面1中的方法。如果你使用ajax,你将一次返回一行。在另一个场景中,你可以有两个查询,然后你可以合并到两个视图模型中,或者你加入查询A结果与查询b如果是一个1-1映射,假设没有这样做两个调用。再次,这取决于你。如果用户只展开两行,您是否想要预先传递所有数据?不太可能,在这种情况下,我喜欢ajax方法。