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

本文关键字:WebGrid MVC4 动态 创建 用户 选择 | 更新日期: 2023-09-27 18:22:00

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

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

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

但现在,直到用户做出选择后,我才知道我需要的数据,我打算尝试做这样的事情(由于我没有提供数据源,所以会出现错误):

var gridHistory = new WebGrid();

在运行时没有数据源的情况下,如何提供数据源?

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

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

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

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