JqG​​rid,将网格的ID作为参数

时间:2011-12-22 09:06:34

标签: jquery asp.net-mvc-3 jqgrid

我想动态生成一些JqGrid。为此,我循环遍历列表以创建HTML内容。

     @foreach(string clientCode in ViewBag.Codes)
     {
        <table class="jqgCode" id="jqgCode+@clientCode" cellpadding="0" cellspacing="0"></table>
        <div id="pjqgCode+@clientCode" style="text-align:center;"></div>
     }

我使用唯一的代码值动态生成网格的id。

基本上,网格将具有相同的格式,只有数据才会更改,而代码是将更改SQL请求的参数。所以我想要做的是检索网格ID,以便在我的控制器中执行操作。

这是我正在尝试做的事情:

<script type="text/javascript">
$(document).ready(function () {
    $('.jqgCode').jqGrid({
        //url from wich data should be requested
        url: '@Url.Action("CodeDetail")',
        //type of data
        datatype: 'json',
        //url access method type
        mtype: 'POST',
        postData: {code: $(this).attr('id')},
        .........
      });
 });

当我在调试模式下查看动作方法“Code Detail”时,我看到“code”参数中有一个空值。

如何在控制器中输入网格ID。也许有更好的方法来做我想做的事情,所以所有的建议都很好。

提前致谢!

1 个答案:

答案 0 :(得分:1)

一个问题是$('.jqgCode')必须只返回一个元素($('.jqgCode').length必须为1)。如果你不这样做,你可以使用相同的URL('@Url.Action("CodeDetail")')和从服务器返回的数据中的id重复两个网格。

如果$('.jqgCode').length等于1,您可以重写JavaScript代码,如下所示:

$(document).ready(function () {
    var $myGrid = $('.jqgCode'), gridId = $myGrid.attr('id');
    $myGrid.jqGrid({
        url: '@Url.Action("CodeDetail")',
        datatype: 'json',
        mtype: 'POST',
        postData: {code: gridId},
        .........
      });
 });