我正在尝试将 jqGrid 用于相当复杂的 UI。网格最终需要有一个下拉列、一个自动完成和一个按钮列。现在,我无法弄清楚如何设置一个列,其中包含一个select
列表,该列表填充模型上的值,从IEnumerable
模型上的属性设置初始选定值,并在用户更改值时更改该属性的select
名单。例如,假设我有这些模型:
public class GridRowModel
{
public int GridRowModelId { get; set; }
public string SomeText { get; set; }
public int SomeSelectOptionId { get; set; }
}
public class SelectOption
{
public int SomeSelectOptionId { get; set; }
public string Description { get; set; }
}
public class SomeModel {
public int SomeModelId { get; set; }
public IEnumerable<GridRowModel> GridRowModels { get; set; }
public IEnumerable<SelectOption> AllSelectOptions { get; set; }
}
的AllSelectOptions
属性SomeModel
与模型上的所有其他内容一起设置在控制器中。控制器还有一个方法GetSomeModelGridRows
可以返回GridRowModel
jqGrid 的对象数组rows
。然后,我的 Razor 看起来像这样:
@model SomeModel
<table id="someModelGridRows" cellpadding="0" cellspacing="0"></table>
<div id="pager" style="text-align: center;"></div>
<script type="text/javascript">
$(document).ready(function() {
$("#someModelGridRows").jqGrid({
url: '@Url.Action("GetSomeModelGridRows")',
datatype: 'json',
mtype: 'POST',
colNames: ['GridRowModelId', 'Text', 'Select Option'],
colModel: [
{ name: 'GridRowModelId', index: 'GridRowModelId', hidden: true },
{ name: 'SomeText', index: 'SomeText' },
{ name: 'SomeSelectOptionId', index: 'SomeSelectOptionId', edittype: 'select',
**?? is this where I would do something and if so, what ??**
],
//the rest of the grid stuff
});
});
</script>
在非网格情况下,使用Html.DropDownListFor
帮助程序很简单。有没有办法可以在这里使用它?我是不是走错了路和/或这是否可能?