2010-04-28 72 views
3

基礎的jqGrid tableToGrid「選項」參數

大家好,我已經看到定義爲tableToGrid(selector, options)在jqGrid的維基tableToGrid法(彼得Romianowski),但不能在任何地方找到具有的options

文檔

有誰知道這些或在哪裏可以找到它們?編輯:謝謝奧列格,解決!

什麼我其實想做的是包住導致的jqGrid的form,這將提交checkbox值是在表中的列。我的問題是,tableToGrid方法似乎是從checkbox元素中刪除name屬性,因此它們不會與表單提交一起提交。

+0

在我看來,在網格的相應列標題的列名中的複選框的名稱。如果不是這樣,你可能需要在網格中增加一個這樣的信息。 – Oleg 2010-04-28 13:36:50

回答

1

議決

的jqGrid的tableToGrid方法就可以找到複選框的值在原表,自動實現對所得到的jqGrid的multiSelect: true選項,顯示出內在的複選框。要獲得所選行ID的列表,只需如何產生和手動的jqGrid越來越打造你可以去表後稱

$('#grid').getGridParam('selarrrow') 
7

就像你可以在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:table_to_jqgrid上看到tableToGrid方法的選項參數只不過是你創建的jqGrid的選項(見http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)。

如果我不理解你的主要問題,你有一些從服務器收到的數據作爲表單提交的答案。你想把這些數據放在一個網格中。要做到這一點,你可以使用更直接的方式使用jqGrid的datatype: 'local'。這裏有一個例子:

所有的
var grid = jQuery('#list').jqGrid({ 
    caption: 'Testclusters', 
    height: 'auto', 
    gridview: true, 
    rownumbers: true, 
    sortable: true, 
    datatype: 'local', 
    viewrecords: true, 
    pager: '#pager', 
    pgbuttons: false, 
    pginput: false, 
    rownumbers: true, 
    colNames: ['Name', 'Testtiefe', 'Std', 'FachlicheTests', 'RowVersion'], 
    colModel: [ 
     { name: 'Name', index: 'Name', width: 120 }, 
     { name: 'TesttiefeName', width: 180 }, 
     { name: 'Std', width: 21, formatter: 'checkbox', align: 'center' }, 
     { name: 'IsFachlicheTests', width: 21, formatter: 'checkbox', align: 'center' }, 
     { name: 'RowVersion', width: 50, hidden: true } 
       ] 
}).navGrid('#pager', { edit: false, add: false, del: false, refresh: true, view: false, search: false }) 
    .navButtonAdd('#pager', { caption: "", buttonicon: "ui-icon-calculator", title: "choose columns", 
     onClickButton: function() { 
      jQuery('#list').jqGrid('columnChooser'); 
     } 
}); 
grid.jqGrid('gridResize'); 
var myData = [ 
    { Name: "VIA XP", TesttiefeName: "Alle SW-Produkte", Std:true, IsFachlicheTests:false, RowVersion: "20FC31" }, 
    { Name: "KUBUS", TesttiefeName: "Alle SW-Produkte", Std:false, IsFachlicheTests:true, RowVersion: "20FC32" } 
]; 

for (var i = 0; i <= myData.length; i++) { 
    grid.addRowData(i + 1, myData[i]); 
} 

首先創建一個空的jqGrid,然後對於addRowData方法填充它。

此外,如果您在jqGrid中有許多複選框,可以從Vertical text inside table headers using a JavaScript-based SVG library查看我的示例並在http://www.ok-soft-gmbh.com/VerticalHeaders/TestFixedO1.htm上查看結果,這會很有趣。

+0

謝謝。也許你可以進一步幫助! BASIC html表格是在頁面上繪製的,它包含'checkboxes',允許用戶選擇某些項目,然後通過sumbitting包含'form'來提交它們的選擇 - 問題是當我在表格上調用'tableToGrid'時,它混淆了名稱和「複選框」的ID。你知道如何告訴tableToGrid不要觸摸checkbox單元格的內容嗎? – Jimbo 2010-04-28 13:14:39

+0

垂直列的名稱在Internet Explorer中看起來不太好。在所有其他現代瀏覽器中,它看起來非常好。正是關於這個問題,我問了這個問題http://stackoverflow.com/questions/2705174/vertical-textes-inside-of-table-headers-with-respect-of-a-javascript-based-on-svg。 我不明白爲什麼你需要一個基本的html表格。我永久使用jqGrid direct,它允許修改表格中的一些數據,如複選框。查看http://trirand.com/blog/jqgrid/jqgrid.html,在樹部分選擇「行編輯」,然後選擇「輸入類型」。 – Oleg 2010-04-28 13:33:43

+2

jqgrid表需要一些時間和代碼來構建,而基本html上的tableToGrid是一個快速調用。我只需要jqgrid的列排序功能(和漂亮的外觀),因此在純jqgrid表中沒有任何意義。但如前所述,這些複選框會導致問題! – Jimbo 2010-04-29 07:12:48

0

更改列的寬度爲任意數量的列

。在這種情況下,更改列標題的所有列寬和相應的數據,而無需糾正一些繁瑣的代碼。

 var tabColWidths ='70px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px'; 

function reDefineColWidth(){ 
     var widthsArr = tabColWidths.split('|'); 

    for(var j=0; j < widthsArr.length ; j++){ 
      $('.ui-jqgrid-labels > th:eq('+j+')').css('width',widthsArr[j]); 
      $('#grid tr').find('td:eq('+j+')').each(function(){$(this).css('width',widthsArr[j]);}) 
     } 
}