【问题标题】:JqGrid, give ID of the grid as parameterJqG​​rid,给定网格的ID作为参数
【发布时间】:2011-12-22 09:06:33
【问题描述】:

我想动态生成一些 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')},
        .........
      });
 });

当我在调试模式下查看操作方法“代码详细信息”时,我看到“代码”参数中有一个空值。

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

提前致谢!

【问题讨论】:

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


    【解决方案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},
            .........
          });
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2011-07-04
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2015-07-03
      相关资源
      最近更新 更多