Grid.Mvc.Ajax初始化问题
我试图在Mvc项目中运行Grid.Mvc.Ajax,但是文档非常差。目前有两个问题-第一个问题与索引操作结果有关。我尝试了多种方法来定义一个新的网格,但它总是抛出“IQueryable(of DateGridModels)”是一种接口类型,不能用作表达式 我尝试过的例子Grid.Mvc.Ajax初始化问题,ajax,asp.net-mvc,vb.net,linq,Ajax,Asp.net Mvc,Vb.net,Linq,我试图在Mvc项目中运行Grid.Mvc.Ajax,但是文档非常差。目前有两个问题-第一个问题与索引操作结果有关。我尝试了多种方法来定义一个新的网格,但它总是抛出“IQueryable(of DateGridModels)”是一种接口类型,不能用作表达式 我尝试过的例子 Dim vGrid = CType(New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory().CreateAjaxGrid(IQueryable(Of DateGridModels),
Dim vGrid = CType(New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory().CreateAjaxGrid(IQueryable(Of DateGridModels), 1, False, 5), Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels))
Dim vGrid2 = CType(New AjaxGridFactory().CreateAjaxGrid(Of DateGridModels)(IQueryable(Of DateGridModels), 1, False, 5), AjaxGrid(Of DateGridModels))
另一个问题与网格没有直接关系,但更一般的MVC是
@code
@Html.RenderPartial("_DataGrid", Model)
End Code
返回“表达式不生成值”
========================================编辑========================
回应评论中的标记C
部分
@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
Public Property CalendarM() As CalendarModels
Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
Public Property FirstName() As String
Public Property LastName() As String
End Class
查看
@ModelType MainModels
主要型号
@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
Public Property CalendarM() As CalendarModels
Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
Public Property FirstName() As String
Public Property LastName() As String
End Class
网格模型
@Imports GridMvc.Html
@Imports GridMvc.Sorting
@ModelType Grid.Mvc.Ajax.GridExtensions.AjaxGrid(Of DateGridModels)
Public Class MainModels
Public Property CalendarM() As CalendarModels
Public Property GridM() As List(Of MaintGrid)
End Class
Public Class DateGridModels
Public Property FirstName() As String
Public Property LastName() As String
End Class
我将完全按照文档中指定的方式实例化网格,如:
Dim vm = New List(Of DateGridModels)() From { _
New DateGridModels() With { _
Key .FirstName = "John", _
Key .LastName = "Doe" _
} _
}.AsQueryable()
Dim ajaxGridFactory = New Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory()
Dim grid = ajaxGridFactory.CreateAjaxGrid(vm, 1, False)
看起来不需要实现列表
AsQueryable()
,可能是因为他们正在网格中执行一些linq
语句。如果将IQueryable
更改为Queryable
,“Queryable”没有类型参数,因此不能有类型参数。。。感谢您的回复,这篇文章让我抓狂。在文档中,它使用List
的具体实现来初始化CreateAjaxGrid
,而不是一个接口。为什么不使用列表
?编辑:对不起,刚才注意到这是VB的,不是C的。只需实现一个新的DateGridModels
尝试列表,就得到了以下错误-System.InvalidCastException:无法将类型为'System.Collections.Generic.List1[MaintenanceWeb.DateGridModels]'的对象强制转换为'System.Linq.IQueryable
1[MaintenanceWeb.DateGridModels]’。因此,我认为您可能需要将IQueryable的每个实例都更改为列表(在您的视图中,等等),除非您可以使用.AsQueryable()的静态方法选项。如果我删除原始模型类型,它就可以工作,尽管排序似乎像Grid.Mvc一样回发,但可能我还没有为此实现脚本。主要的问题是,我有许多其他控件使用不同的模型,但它在Html.RenderPartial(“_DataGrid”,Model.DateM)”中崩溃了。。。谢谢你的耐心:-)我不知道你的问题是什么。您在哪里删除ModelType并且它正在工作?最初ModelType被设置为MainModels,这反过来又指向其他模型-因此在控件中它们被设置为Model.Model1、Model.Model2等等-我将网格设置为Model.DateM(DateGridModels),当它刚刚拾取MainModels时它爆炸了。。。ModelType在主视图中被更改以使其工作Yes和no-可以使其加载,但是同一视图上的其余控件都没有用:-(最后我不得不采用一种稍微不同的方法,因为我需要一种方法使所有其他控件也能工作,但已将此标记为答案并投票通过-谢谢您的帮助:-)