I have a jqGrid that works perfectly. It contains a pager button to export the grid to a csv file which works and exports the data. However, I also need to have the column names exported with the data and I can't seem to get that to work. My working code follows.
jQuery("#detail").jqGrid('navGrid','#pager2',
{height:520,width:500,savekey:[true,13],navkeys:[true,38,40],reloadAfterSubmit:false, jqModal:false, closeOnEscape:true, bottominfo:"Fields marked with () are required"}, // edit options
{height:520, width:500,savekey:[true,13],reloadAfterSubmit:false,jqModal:false, closeOnEscape:true,bottominfo:"Fields marked with () are required", closeAfterAdd: true}, // add options
{reloadAfterSubmit:false,jqModal:false, closeOnEscape:true}, // del options
{closeOnEscape:true}, // search options
{height:250,width:500,jqModal:false,closeOnEscape:true},
{view:true} // view options
);
// add custom button to export the data to excel
jQuery("#detail").jqGrid('navButtonAdd','#pager2',{
       caption:"",
       title:"Export to CSV",
       onClickButton : function () { 
           exportExcel();
       },
       position:"last"
});
// add custom button to print grid
jQuery("#detail").jqGrid('navButtonAdd','#pager2',{
       caption:"",
       title:"Print",
       buttonicon:"ui-icon-print",
       onClickButton : function () { 
            jQuery('#detail_table').jqprint({ operaSupport: true });
            return false;
       }
});
function exportExcel()
        {
            var mya=new Array();
            mya=jQuery("#detail").getDataIDs();  // Get All IDs
            var data=jQuery("#detail").getRowData(mya[0]);     // Get First row to get the labels
            var colNames=new Array(); 
            var ii=0;
            for (var i in data){colNames[ii++]=i;}    // capture col names
            var html="";
            for(i=0;i
            }
        html=html+"\\n";  // end of line at the end
        document.forms[0].method='POST';
        document.forms[0].action='ajax/csvExport.php';  // send it to server which will open this contents in excel file
        document.forms[0].target='_blank';
        document.forms[0].csvBuffer.value=html;
        document.forms[0].submit();
    }