Как отобразить информацию в jqGrid, что нет никаких данных?

Введенный в Python 3.4, pathlib имеет действительно удобный метод для чтения текста из файлов, как показано ниже:

from pathlib import Path
p = Path('my_text_file')
lines = p.read_text().splitlines()

(вызов splitlines - это то, что превращает это от строки, содержащей все содержимое файла, до списка строк в файле).

pathlib имеет много удобных удобств. read_text красиво и лаконично, и вам не нужно беспокоиться об открытии и закрытии файла. Если все, что вам нужно сделать с файлом, это прочитать все сразу, это хороший выбор.

11
задан Joel 12 February 2015 в 12:56
поделиться

3 ответа

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

Однако, допустим, вы просто хотите поместить сообщение в первый столбец, а остальные оставить пустыми. По сути, вы реализуете функцию события loadComplete и управляете содержимым сетки.

Добавьте свойство к объекту сетки следующим образом:

//Various other grid properties...
loadComplete: function() {
     if (jQuery("#grid_id").getGridParam("records")==0) {
          jQuery("#grid_id").addRowData(
                "blankRow", {"firstCol":"No data was found". "secondCol":"", "thirdCol":""
          );
     }
}

Где «#grid_id» - это идентификатор контейнера сетки, «blankRow» - это произвольный идентификатор, который вы дали новой строке, которую вы добавили, и "

1
ответ дан 3 December 2019 в 09:20
поделиться

Поместите ваше сообщение в div со стилем: hidden. Поместите это в свой div пейджера.

В событии loadComplete сделайте что-нибудь вроде:

if($('#results').getGridParam("records")==0) { 
 $("#noResultsDiv").show();   
}
0
ответ дан 3 December 2019 в 09:20
поделиться

Я искал ответ на этот вопрос и пришел к следующему решению, но я не разговариваю с сервером, поэтому мне нужно использовать что-то помимо события loadComplete. Я подключился к событию gridComplete и проверял, есть ли какие-нибудь записи. Если нет, отобразите пустой текст или скройте его.

jQuery('#test').jqGrid({
        ... // some settings
        gridComplete: loadCompleteFunction,
        emptyDataText:'There are no records. If you would like to add one, click the "Add New ..." button below.', // you can name this parameter whatever you want.
        ... // more settings

});

function LoadComplete()
{
    if ($('test').getGridParam('records') == 0) // are there any records?
        DisplayEmptyText(true);
    else
        DisplayEmptyText(false);
}

function DisplayEmptyText( display)
{
    var grid = $('#test');
    var emptyText = grid.getGridParam('emptyDataText'); // get the empty text
    var container = grid.parents('.ui-jqgrid-view'); // find the grid's container
    if (display) {
        container.find('.ui-jqgrid-hdiv, .ui-jqgrid-bdiv').hide(); // hide the column headers and the cells below
        container.find('.ui-jqgrid-titlebar').after('' + emptyText + ''); // insert the empty data text
    }
    else {
        container.find('.ui-jqgrid-hdiv, .ui-jqgrid-bdiv').show(); // show the column headers
        container.find('#EmptyData' + dataObject).remove(); // remove the empty data text
    }
}

9
ответ дан 3 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: