2010-04-28 77 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]);}) 
     } 
}