用户选择后创建动态WebGrid(MVC4)

时间:2014-09-15 17:36:24

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我在一个视图中有几个网格都完美运行,除了我现在需要使一个网格动态。一旦用户在ddl过滤器中进行某些选择,它就会填充。网格在页面加载时没有数据源,我需要向控制器发送json请求,但是如何为网格创建占位符?我无法使用     @ grid.GetHTML(...)

因为它会抛出想要数据源的错误。我最初用模型声明了网格:

var gridHistory = new WebGrid(
    Commissions.Models.CommissionHistoryModel.getCommissionHistory());

但是现在我不知道我需要的数据,直到用户做出选择之后,我才会尝试做这样的事情(因为我没有提供数据源而引发错误) :

var gridHistory = new WebGrid();

如果我在运行时没有数据源,我怎样才能提供数据源?

2 个答案:

答案 0 :(得分:0)

您可以创建部分操作(使用httpget属性),返回包含动态WebGrid的PartialView。每次用户对ddl进行更改时,您都应该通过$ .ajax将其部分渲染到主视图中的某个占位符。

答案 1 :(得分:0)

我认为WebGrid的缺点是不进行数据库级分页。如果您有大量数据,则会遇到一些性能问题。

您可能对Dynamic MVC(http://dynamicmvc.com)感兴趣。它将执行动态数据库级别排序,过滤和分页。它还在部分视图中公开了html,因此您可以直接以更多的mvc样式而不是webforms控件样式自定义html。