Printing jqgrid打印视图的一个想法

Printing jqgrid打印视图的一个想法,printing,jqgrid,Printing,Jqgrid,我希望在jqgrid中有两个视图: 1) 带有可排序列、分页等的常规网格视图(非常棒,效果非常好……喜欢!) 2) 一个“打印视图”,可以很容易地用css设置样式,并为打印定制。类结构不应该太复杂,因为我想轻松地制作自己的样式表。一件重要的事情是能够在每个打印页面上重复列标题。(我不喜欢从jqgrid打印。即使添加带有“media=print”的jqgrid样式表,打印结果也很难控制。) 所以,我首先创建了一个jqGrid。然后,使用它的数据,创建我自己的表并从中打印。这有点像黑客。但它是有效的

我希望在jqgrid中有两个视图:

1) 带有可排序列、分页等的常规网格视图(非常棒,效果非常好……喜欢!)

2) 一个“打印视图”,可以很容易地用css设置样式,并为打印定制。类结构不应该太复杂,因为我想轻松地制作自己的样式表。一件重要的事情是能够在每个打印页面上重复列标题。(我不喜欢从jqgrid打印。即使添加带有“media=print”的jqgrid样式表,打印结果也很难控制。)

所以,我首先创建了一个jqGrid。然后,使用它的数据,创建我自己的表并从中打印。这有点像黑客。但它是有效的

1-创建网格并将其插入div。注意,我在“loadComplete”函数中根据变量的存在称为“build\u print\u view”。这允许我控制是要先显示“打印视图”还是“网格视图”:

2-在build_print_view()中,您可以从jqgrid中提取数据并将其放入一个表中,该表可以使用您自己的样式表进行任意样式设置

    function build_print_view(){                

        var gridtable = jQuery("#list");
        var lista = gridtable.jqGrid('getGridParam','data');
        var tablestr = "";             
        for(var i=0;i<lista.length;i++){
            var rowData = lista[i];
            tablestr += "<tr>"
            tablestr += "<td class=\"wide cycle\" style=\"width:50px;\" id=\"sku\">"+rowData.var1+"</td>";
            tablestr += "<td class=\"wide cycle\" style=\"width:300px;\" id=\"skudesc\">"+rowData.var2+"</td>";             
            tablestr += "</tr>";  
        }

    jQuery.get('/lookupgrid/lookupgrid/get_print_view', function(data) {            
        var _html= jQuery(data);        
        _html.find('#printresults').append(tablestr);
        jQuery('#resultdiv').html(_html);        
    });
} 
function build\u print\u view(){
var gridtable=jQuery(“列表”);
var lista=gridtable.jqGrid('getGridParam','data');
var tablestr=“”;

对于(var i=0;iIs,这里有一个问题吗?我试图提供一个解决方案。这里没有问题。谢谢,但这不是问题的目的,仅供参考。一篇包含此信息的博客文章会更好:)好的,根据我上面写的,有一个问题:有更好、更“jqgrid-specific”的吗创建网格的可自定义打印视图的方法,该视图专门允许重复标题行?我没有成功,这就是我执行上述操作的原因。JqGrid使用标题行。我认为重复所需的是标题行标题行2。顺便说一句,kprobst。我理解并且不担心。如果您认为我的姓是“Propes”…小世界,嗯?
    function build_print_view(){                

        var gridtable = jQuery("#list");
        var lista = gridtable.jqGrid('getGridParam','data');
        var tablestr = "";             
        for(var i=0;i<lista.length;i++){
            var rowData = lista[i];
            tablestr += "<tr>"
            tablestr += "<td class=\"wide cycle\" style=\"width:50px;\" id=\"sku\">"+rowData.var1+"</td>";
            tablestr += "<td class=\"wide cycle\" style=\"width:300px;\" id=\"skudesc\">"+rowData.var2+"</td>";             
            tablestr += "</tr>";  
        }

    jQuery.get('/lookupgrid/lookupgrid/get_print_view', function(data) {            
        var _html= jQuery(data);        
        _html.find('#printresults').append(tablestr);
        jQuery('#resultdiv').html(_html);        
    });
} 
    <div id="printview">
<table id="clsitems" class="wide">
    <thead>
        <tr>
            <th colspan="10" class="wide" id="label">                
            </th>
        </tr>
        <tr>                
            <td class="wide label">
                var1:
            </td>
            <td class="wide label">
                var2:
            </td>            
        </tr>
    </thead>
    <tbody id="printresults">

    </tbody>
</table>
</div>