0

我正在尝试在 Jqgrid 的导航栏中编写一个自定义按钮(我是 JqGrid 的新手)。它的功能很简单...根据选定的行,它必须从服务器获取一些信息,然后打开一个包含请求信息的对话框。

开始了:

           .navButtonAdd('#pager-list',{
            caption: "",
            title: "View products", 
            buttonicon:"ui-icon-clock",
            onClickButton : function () { 

                    var line = $('#grid-list').jqGrid('getGridParam', 'selrow');
                    if ( line == null ) {
                        alert("please select a row!");
                    }
                    else {

                        $.get('products.php', { rowSel: line }, function ( data ) {






      I want to implement a dialog that will open and set something(using the JSON response from server DATA). 
         like this very simple:
    Product ID: data[0].pID;
    Product Name: data[0].pName;
    Product Price: data[0].pPrice;

and a close button.


                         });

                   }


            },

我看过几个例子,但我只是感到困惑。任何人都可以帮助我进行此编码...在此先感谢。

更新...我解决了这样的问题:

else {



                        $.get('products.php', { rowSel: line },
                       function ( data ) {

                        $.jgrid.info_dialog('Review Products',data, $.jgrid.edit.bClose,{buttonalign:'center', width:'auto',resize: true , align: 'left'});


                        });

所有的数据操作都是在服务器端进行的......

谢谢!

4

2 回答 2

1

前段时间我遇到过同样的情况,我想添加一个按钮,以 csv 格式从 jqgrid 下载选定的行。但是我发现在网格之外放置一个按钮并向服务器发出 ajax 请求并获得结果要容易得多。实际上在我的情况下这是一个同步调用。无论如何..这是我使用的代码..我并不是说它不可能,但这取决于您的项目限制...:

    function x() {

     var obj = jQuery("input:checked").map(function() { return jQuery(this).parents('tr').attr('id'); });

    var result = null;
    var arr = jQuery.makeArray(obj);
    var data = arr.join(',');

   $.ajax({
     url : '<%= url_for :controller => "products", :action =>"export_to_csv" %>',
         type : 'POST',
     data : {data:data},
     dataType : 'string',
         async: false,
         success : function(response) { result = response; }
     }); 

    window.open('data:text/csv;charset=utf-8,' + escape(result));

     };

    <%= jqgrid("List of products: you can filter (using the lens icon in the bottom of the grid), sort (clicking on the header column), scroll the data in the grid (using the pagination system)", "gbgrid", products_path,
  [{ :field => "id"},{ :field => "act"},{ :field => "code"}]
      }) %>
于 2013-05-29T12:52:38.397 回答
-1

我不知道 LuferBRA 上的代码,但我遇到了与 JQgrid 相同的问题,并且我对 AJAx 请求有疑问......我猜同步请求是解决方案。感谢库马尔

于 2013-05-29T14:40:36.460 回答