2010-04-28 2 views
3

ОсноваjqGrid tableToGrid «варианты» параметры

Привет всем, Я вижу метод tableToGrid (Питер Romianowski) определяются как tableToGrid(selector, options) на вики jqGrid, но нигде не могу найти, что имеет документацию options

Кто-нибудь знает об этом или о том, где их найти? EDIT: Спасибо, Олег, решил!

Больше

Что Im на самом деле пытается сделать это упаковывают в результате jqGrid в form, который представит checkbox значения, которые находятся в столбце таблицы. Моя проблема заключается в том, что метод tableToGrid, как представляется, удаляет свойство name из элементов checkbox и, следовательно, они не отправляются с сообщением формы.

+0

Мне кажется, что имя флажка в имени столбца соответствующего заголовка столбца сетки. Если это не так, вам, вероятно, потребуется дополнительная колонка в сетке с таким видом информации. – Oleg

ответ

1

ПОСТАНОВИЛ

Метод jqGrid tableToGrid будет найти значение флажков в исходной таблице и автоматически осуществлять multiSelect: true опции на результирующем 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).

Если я отказался от вашей основной проблемы, вы получите некоторые данные, полученные с сервера, как ответ на форму submit. И вы хотите поместить эти данные в сетку. Для этого вы можете использовать более прямой путь с помощью datatype: 'local' jqGrid. Вот пример:

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 нарисована на странице и содержит «флажки», позволяющие пользователю выбирать определенные элементы, а затем отправлять их выбор, подавая содержащую «форму» - проблема, когда я вызываю «tableToGrid» на столе, это испортит имя и идентификатор 'checkboxes'. Вы знаете, как сказать tableToGrid, чтобы не касаться содержимого ячеек «checkbox»? – Jimbo

+0

Названия вертикальных столбцов выглядят не очень хорошо в Internet Explorer. Во всех других современных браузерах это выглядит очень хорошо.Именно об этой проблеме я задал вопрос http://stackoverflow.com/questions/2705174/vertical-textes-inside-of-table-headers-with-respect-of-a-javascript-based-on-svg. Я действительно не понимаю, зачем нужна таблица BASIC html. Я использую постоянно jqGrid direct, который позволяет изменять некоторые данные из таблицы, как флажки. Посмотрите на http://trirand.com/blog/jqgrid/jqgrid.html, выберите «Редактирование строк» ​​в дереве, а затем «Типы ввода». – Oleg

+2

Для таблицы jqgrid требуется некоторое время и код для построения, тогда как tableToGrid на базовом html - это быстрый вызов. Мне нужны только сортировка столбцов (и довольно красивый) jqgrid, поэтому нет смысла в чистой таблице jqgrid. Но, как уже упоминалось, эти флажки вызывают проблемы! – Jimbo

0

Изменить ширину столбца для любого количества столбцов

В этом случае после того, как jqgrid получения построить вы можете просто пойти к столу получать генерируется и вручную измените все ширины столбцов заголовка столбца и соответствующие данные, не исправляя нужный код.

 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]);}) 
     } 
}