我在一个视图中有几个网格都完美运行,除了我现在需要使一个网格动态。一旦用户在ddl过滤器中进行某些选择,它就会填充。网格在页面加载时没有数据源,我需要向控制器发送json请求,但是如何为网格创建占位符?我无法使用 @ grid.GetHTML(...)
因为它会抛出想要数据源的错误。我最初用模型声明了网格:
var gridHistory = new WebGrid(
Commissions.Models.CommissionHistoryModel.getCommissionHistory());
但是现在我不知道我需要的数据,直到用户做出选择之后,我才会尝试做这样的事情(因为我没有提供数据源而引发错误) :
var gridHistory = new WebGrid();
如果我在运行时没有数据源,我怎样才能提供数据源?
答案 0 :(得分:0)
您可以创建部分操作(使用httpget属性),返回包含动态WebGrid的PartialView。每次用户对ddl进行更改时,您都应该通过$ .ajax将其部分渲染到主视图中的某个占位符。
答案 1 :(得分:0)
我认为WebGrid的缺点是不进行数据库级分页。如果您有大量数据,则会遇到一些性能问题。
您可能对Dynamic MVC(http://dynamicmvc.com)感兴趣。它将执行动态数据库级别排序,过滤和分页。它还在部分视图中公开了html,因此您可以直接以更多的mvc样式而不是webforms控件样式自定义html。