Подсетка не отображает данные в jqGridJavascript

Форум по Javascript
Ответить
Anonymous
 Подсетка не отображает данные в jqGrid

Сообщение Anonymous »

После двух дней попыток решить эту проблему и просмотра практически всех сообщений, которые я смог найти, я все еще застрял. Я использую jqGrid, и основная сетка загружается нормально. У меня есть столбец идентификаторов, поэтому я ссылаюсь на него с помощью ключа. Моя проблема в том, что подсетка не загружает данные.
Вот образец моего json:

Код: Выделить всё

[
{
"ID":212,
"ScientificName":"Abronia fragrans",
"PreviousNames":"Abronia fragrans var. glaucenscens, Abronia latifolia, Abronia turbinata, Abronia villosa",
"Family":"Nyctaginaceae",
"CommonNames":"Fragrant Sand Verbena, Fragrant Sand-verbena, Fragrant Verbena, Fragrent White Sand Verbena, Hearts Delight, Prairie Snowball, Sand Verbena, Snowball Sand Verbena, Snowball Verbena, Sweet Sand-verbena, Wild Lantana",
"ToxictoDogs":0,
"ToxictoCats":0,
"ImageName":"",
"ToxicPrinciples":null,
"ClinicalSigns":null
},
{
"ID":1,
"ScientificName":"Abrus precatorius",
"PreviousNames":null,
"Family":"Fabaceae",
"CommonNames":"Buddhist Rosary Bead, Crabs Eyes, Indian Bead, Jequirity Bean, Love Bean, Prayer Bean, Precatory Bean, Rosary Pea, Seminole Bead",
"ToxictoDogs":1,
"ToxictoCats":1,
"ImageName":"",
"ToxicPrinciples":"Abrin (lectin or a toxalbumin) and abric acid (a glycoside)",
"ClinicalSigns":"Severe vomiting and diarrhea (sometimes bloody), tremors, high heart rate, fever, shock, death.  Seeds are very toxic (seed coat must be broken)."
},
{
"ID":213,
"ScientificName":"Acalypha hispida",
"PreviousNames":"Acalypha densiflora, Acalypha sanderi",
"Family":"Euphorbiaceae",
"CommonNames":"Bristly Copperleaf, Chenille Plant, Foxtail, Philippines Medusa, Red Hot Cats Tail, Red-hot Cat Tail, Red-Hot Cattail",
"ToxictoDogs":0,
"ToxictoCats":0,
"ImageName":"",
"ToxicPrinciples":null,
"ClinicalSigns":null
}
]
И мой JS:

Код: Выделить всё

$(document).ready(function () {
$("#jqGrid").jqGrid({
url: "scripts/dbconfig.php",
mtype: "GET",
datatype: "json",
colNames: ["ID", "ScientificName", "Family", ""],
colModel: [
{ name: "ID", key: true},
{ name: "ScientificName", width: 550, cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal;"' } },
{ name: "Family"},
{ name: "ImageName", align: "center", width: 300}
],
rowNum: 10,
rowList: [5, 10, 20],
pager: "#pager",
gridview: true,
ignoreCase: true,
rownumbers: true,
sortname: "ScientificName",
viewrecords: true,
height: "100%",
subGrid: true,
subGridRowExpanded: function (subgridId, rowid) {
var subgridTableId = subgridId + "_t";
$("#" + subgridId).html("");
$("#" + subgridTableId).jqGrid({
datatype: "local",
data: $(this).jqGrid("getLocalRow", rowid).data,
colNames: ["ToxicPrinciples", "ClinicalSigns"],
colModel: [
{name: "ToxicPrinciples", width: 130},
{name: "ClinicalSigns", width: 130}
],
height: "100%",
rowNum: 10,
sortname: "ToxicPrinciples",
idPrefix: "s_" + rowid + "_"
});
}
});
$("#jqGrid").jqGrid("navGrid", "#pager", {add: false, edit: false, del: false});
});
Теперь, если бы я изменил «subGridRowExpanded» на что-то простое, например следующее, я получаю правильный идентификатор из моей основной сетки, показывающий:

Код: Выделить всё

subGridRowExpanded: function(subgridId, rowid) {
var html = "rowid=" + rowid + "
";
$("#" + subgridId).append(html);
}
Я совершенно уверен, что моя проблема связана со строкой data: моей подсетки, но я не уверен и не знаю, как ее исправить. Я также изучил возможность перезагрузки данных в подсетке вместо локального использования, но это кажется излишним.
Я также попробовал другой подход для своей подсетки, подобный следующему, который также не помог. загрузить любые данные.

Код: Выделить всё

subGridRowExpanded: function (subgridDivId, rowid) {
var $subgrid = $(""),
$subgridDiv = $("#" + subgridDivId),
subgridData = $(this).jqGrid("getLocalRow", rowid).details;

$subgridDiv.closest(".subgrid-data").prev(".subgrid-cell").remove();
var colspan = $subgridDiv.closest(".subgrid-data").attr("colspan");
$subgridDiv.closest(".subgrid-data").attr("colspan", parseInt(colspan, 10) + 1);
$subgridDiv.append($subgrid);
$subgrid.jqGrid({
idPrefix: rowid + "_",
data: subgridData,
colModel: [
{ name: "ToxicPrinciples", label: "ToxicPrinciples" },
{ name: "ClinicalSigns", label: "ClinicalSigns" },
],
sortname: "ToxicPrinciples"
});
$subgrid.jqGrid("setGridWidth", $subgridDiv.width() - 1);
}
Я также должен упомянуть, что в моем браузере открыто окно консоли в разделе «Инструменты разработчика», и ни для одного из приведенных выше кодов, показанных здесь, не возникает ошибок.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-jqgrid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»