JSon Challenge: Как получить значение в формате JSON в JqxGrid?

0

Я использую jqwidgets.

Я пытаюсь реализовать JQxGrid. В этот момент я получаю Json закодированные значения, возвращаемые переменной javascript linkrenderer следующим образом:

  <a href="http://www.jqwidgets.com/edit/myid1">http://www.jqwidgets.com/edit/myid1</a>

  <a href="http://www.jqwidgets.com/edit/myid2">http://www.jqwidgets.com/edit/myid2</a>

  <a href="http://www.jqwidgets.com/edit/myid3">http://www.jqwidgets.com/edit/myid3</a>

Но я хочу, чтобы "linkrenderer" возвращал результаты следующим образом:

  <a href="http://www.jqwidgets.com/edit/myid1">myid1</a>

  <a href="http://www.jqwidgets.com/edit/myid2">myid2</a>

  <a href="http://www.jqwidgets.com/edit/myid3">myid3</a>

Буду признателен за вашу помощь в этом отношении.

Мой код:

  <script type="text/javascript">
    $(document).ready(function () {
        // prepare the data
        var source =
        {
            datatype: "json",
            datafields: [
                { name: 'CompanyName', type: 'string'},
                { name: 'ContactName', type: 'string'},
                { name: 'ContactTitle', type: 'string'},
                {name: 'CustomerID',type:'string'},


           ],
            url: 'data.php',
            cache: false
        };


       var linkrenderer = function (row, column, value)
   {
            if (value.indexOf('#') != -1) {
                value = value.substring(0, value.indexOf('#'));
            }
            value = "http://www.myurl.com/edit/" + value;
            var format = { target: '"_blank"' };
            var html = $.jqx.dataFormat.formatlink(value, format);
            return html;
        }



        var dataAdapter = new $.jqx.dataAdapter(source);

        $("#jqxgrid").jqxGrid(
        {
           width: 600,
            source: dataAdapter,
            theme: 'classic',
             pageable: true,
            autorowheight: true,
            autoheight: true,
            altrows: true,

            columns: [
              { text: 'Company Name', datafield: 'CompanyName', width: 250},
              { text: 'ContactName', datafield: 'ContactName', width: 150 },
              { text: 'Contact Title', datafield: 'ContactTitle', width: 180 },
               { text: 'CustomerID', cellclassname: 'column', datafield: 'CustomerID', width: 180, cellsrenderer: (linkrenderer) },

          ],
          ready: function () {
                var rows = $('#jqxgrid').jqxGrid('getrows');
                for (var i = 0; i < rows.length; i++) {
                    var currentCell = $('#jqxgrid').jqxGrid('getcellvalue', i, "CustomerID");

                };
          }
        });    
 $.getJSON( dataAdapter, function( data ) {
var items = [];

 $.each( data, function( key, val ) {
  items.push( "<li id='" + key + "'>" + val + "</li>" );
 });

 $( "<ul/>", {
   "class": "my-new-list",
   html: items.join( "" )
  }).appendTo( "#jqxgrid" );
   });          
    });
  </script>

 </head>
<body class='default'>
  <div id="jqxgrid"></div></body>
Теги:
jqxgrid
jqxwidgets

1 ответ

0

Вместо использования $.jqx.dataFormat.formatlink() для создания html вашей ссылки, почему бы вам не создать ее самостоятельно? Поэтому ваша функция LinkRenderer() должна выглядеть так:

var href = "http://www.myurl.com/edit/" + value;
return '<a href="'+href+'" target="_blank">'+value+'</a>';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню