导航寻呼机中的Jqgrid自定义按钮,用于创建自定义对话框

时间:2013-05-29 12:03:11

标签: jquery jqgrid

我正在尝试在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'});


                        });

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

谢谢!

2 个答案:

答案 0 :(得分: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"}]
      }) %>

答案 1 :(得分:-1)

我不知道LuferBRA上的代码,但我遇到了与JQgrid相同的问题,我遇到了AJAx请求的问题......我猜同步请求就是解决方案。 Thanx Kumar