【问题标题】:Display my data in jqGrid在 jqGrid 中显示我的数据
【发布时间】:2010-01-11 07:25:58
【问题描述】:

在第一次使用 jqGrid 的 ASP.NET MVC 应用程序中。

我有一个菜单,我从母版页的菜单中调用“员工”,如下所示:

<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);
}

在视图(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)在网格中显示?

谢谢,

【问题讨论】:

    标签: asp.net-mvc json jqgrid


    【解决方案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”。例如,我使用自定义格式化程序来显示复选框图像而不是真/假文本。

    【讨论】:

    • 显示列表。在这个页面上不仅有 jqGrid,还有一些其他的控件,比如下拉、textarea、...
    【解决方案2】:

    我有点困惑。您已将 jqGrid 设置为对其数据进行 AJAX 查询作为 JSON,因此无需包含在索引视图的模型中。

    url: '/Employee/MyGridData/', 数据类型:'json',

    要使用 AJAX 方法,您的控制器需要一个 MyGridData 操作。

    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult MyGridData ()
    {
        var list =  _employeeService.List();
        return Json(list);
    }
    

    此外,colModel 中的名称和索引属性必须与模型中的属性名称匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多