将 ID 号传递给 JQWidgets 中的自定义 url

Passing an ID number to a custom url in JQWidgets

我正在尝试使用 JQWidgets 库将 user_id 值传递给自定义 url 任何帮助。正在实际加载从数据库转换为 JSON 的数据。变量 "data" 是我的记录的样子。 user_id 值不显示为 url 的一部分。下面是我的代码

<div id='jqxWidget'>
   <div id="jqxgrid"></div>
 </div>



<script type="text/javascript">
        $(document).ready(function ()
        {
            var data = [{user_id:100,user_name:"sam",first_name:"doe"}];

    var source =
        {
            datatype: "json",
            datafields:
            [
                { name: 'user_id', type: 'string' },
                { name: 'user_name', type: 'string' },
                { name: 'first_name', type: 'string' },
                { name: 'action'}
            ],
            id: 'user_id',
            root: 'Rows',
        };
            var dataAdapter = new $.jqx.dataAdapter(source);

            // create jqxgrid.
            $("#jqxgrid").jqxGrid(
            {
                width: 1000,
                height: 450,
                theme: 'light',
                source: dataAdapter,
                selectionmode: 'multiplerowsextended',
                sortable: true,
                pageable: true,
                pageSize: 20,
                autoHeight: true,
                filterable: true,
                pagesizeoptions: ['20', '40', '80','200'],
                altrows: true,
                columns: [
                  { text: 'User ID', datafield: 'user_id', width: 100 },
                  { text: 'User Name', datafield: 'title', width: 70, cellsformat: 'yyyy-MM-dd'},
                  { text: 'First Name', datafield: 'first_name', width: 150, cellsformat: 'F2', cellsalign: 'left' },
                  { text: 'Action', datafield: 'action',cellsrenderer: renderer,width:130  }
                ]
            });
        });
        var renderer = function (action) {
          return '<span style="padding:5px;" >'+'<a href="update_user?id=data.user_id" class="btn btn-default btn-xs" style="margin-top:3px;"><i class="fa fa-check-square-o"></i>Update user</a>'+'</span>';
       }

    </script>

能否请您尝试以下操作:

1) 修改列定义以在 datafield 属性中传递 user_id 为:

{ text: 'Action', datafield: 'user_id',cellsrenderer: renderer,width:130  }

2) 现在修改renderer函数如下,直接得到user_id

var renderer = function (user_id) {
   return '<span style="padding:5px;" >'+'<a href="update_user?id='+user_id+'" class="btn btn-default btn-xs" style="margin-top:3px;"><i class="fa fa-check-square-o"></i>Update user</a>'+'</span>';
}

这段代码对我来说效果很好。谢谢

{ text: 'Action', datafield: 'ac', cellsrenderer: renderer, width:105 }

var renderer = function (row, columnfield, value, defaulthtml, columnproperties) {
                  var getrow = row;
                  var user_data = $("#jqxgrid").jqxGrid('getrowdata', getrow);
                  var user_id = user_data.user_id;
                 return '<span style="padding:10px;">'+'<a href="update_user?id='+user_id+'" class="btn btn-default btn-xs" style="margin-top:3px;"><i class="fa fa-check-square-o"></i> Update user</a>'+'</span>';

                  }