在第一次使用jqGrid的ASP.NET MVC应用程序中。
我有一个菜单,我从主页面的菜单中调用“employee”,如下所示:
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$(".mnuEmployee").click(function() {
$.post("/Employee/Index", null, function(data) {
$("#text").html(data);
});
});
});
</script>
在控制器中,我有这个:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index()
{
EmployeeModel model = new EmployeeModel();
model.List = _employeeService.List();
model.Languages = _languageService.List();
return View("Index", model);
}
在View(Index.ascx)中,我有这个:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#sandgrid").jqGrid({
url: '/Employee/MyGridData/',
datatype: 'json',
mtype: 'GET',
height: 255,
width: 600,
colNames: ['Index', 'Name', 'Code'],
colModel: [
{ name: 'item_id', index: 'item_id', width: 65 },
{ name: 'item', index: 'item', width: 150 },
{ name: 'item_cd', index: 'item_cd', width: 100}],
pager: jQuery('#sandgridp'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'item_id',
sortorder: "desc",
viewrecords: true,
caption: 'Liste des employés'
});
});
</script>
<table id="sandgrid" cellpadding="0" cellspacing="0"></table>
<div id="sandgridp" style="text-align:center;"></div>
问题出在最后一部分(我想),我的模型中有所有数据,我想在jqGrid中显示员工列表,并在经典文本框,textarea中显示语言(以及更多内容)......如何使用“model.List”(IList)在网格中显示?
谢谢,
答案 0 :(得分:1)
在textbox / textarea中显示语言的原因是什么?你的意思是选择吗?如果是,请查看http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules,以获取“选择”编辑类型。请注意,您可以使用多选列表。
如果您只想显示语言,请在模型中执行此操作:
model.Languages = string.Join(_languageService.List().Select(x => x.Name).ToArray(), ",");
然后jqGrid会将您的语言显示为逗号分隔的字符串。
但我建议你决定(因为从Q中不清楚):
另外看一下自定义格式化程序http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter,您可以编写一个函数将您的语言列表转换为您想要的任何内容,输入您获取数据,输出时返回任何HTML字符串。如果您需要编辑单元格值,请不要忘记“unformatter”。例如,我使用自定义格式化程序来显示复选框图像而不是真/假文本。
答案 1 :(得分:1)
我有点困惑。您已将jqGrid设置为对其数据执行AJAX查询作为JSON,因此无需在索引视图的模型中包含。
url: '/Employee/MyGridData/', datatype: 'json',
要使用AJAX方法,您的控制器需要MyGridData操作。
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult MyGridData ()
{
var list = _employeeService.List();
return Json(list);
}
此外,colModel中的名称和索引属性必须与模型中的属性名称匹配。