Передача идентификационного номера в пользовательский url-адрес в JQWidgets

Пытаюсь передать значение user_id в пользовательский url с помощью библиотеки JQWidgets любую справку. Am фактическая загрузка данных из базы данных, преобразованной в 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>

2 ответа

  1. Пожалуйста, попробуйте следующие вещи:

    1) измените определение столбца, чтобы передать user_iddatafieldатрибут как:

    { 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>';
    }
    
  2. Этот код работал хорошо для меня. Спасибо

    { 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>';
    
                      }