После двух дней попыток решить эту проблему и просмотра практически всех сообщений, которые я смог найти, я все еще застрял. Я использую jqGrid, и основная сетка загружается нормально. У меня есть столбец идентификаторов, поэтому я ссылаюсь на него с помощью ключа. Моя проблема в том, что подсетка не загружает данные.
Вот образец моего json:
Теперь, если бы я изменил «subGridRowExpanded» на что-то простое, например следующее, я получаю правильный идентификатор из моей основной сетки, показывающий:
subGridRowExpanded: function(subgridId, rowid) {
var html = "rowid=" + rowid + "
";
$("#" + subgridId).append(html);
}
Я совершенно уверен, что моя проблема связана со строкой data: моей подсетки, но я не уверен и не знаю, как ее исправить. Я также изучил возможность перезагрузки данных в подсетке вместо локального использования, но это кажется излишним.
Я также попробовал другой подход для своей подсетки, подобный следующему, который также не помог. загрузить любые данные.
Я также должен упомянуть, что в моем браузере открыто окно консоли в разделе «Инструменты разработчика», и ни для одного из приведенных выше кодов, показанных здесь, не возникает ошибок.
После двух дней попыток решить эту проблему и просмотра практически всех сообщений, которые я смог найти, я все еще застрял. Я использую jqGrid, и основная сетка загружается нормально. У меня есть столбец идентификаторов, поэтому я ссылаюсь на него с помощью ключа. Моя проблема в том, что подсетка не загружает данные. Вот образец моего json: [code][ { "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 } ] [/code] И мой JS: [code]$(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}); }); [/code] Теперь, если бы я изменил «subGridRowExpanded» на что-то простое, например следующее, я получаю правильный идентификатор из моей основной сетки, показывающий: [code]subGridRowExpanded: function(subgridId, rowid) { var html = "rowid=" + rowid + " "; $("#" + subgridId).append(html); } [/code] Я совершенно уверен, что моя проблема связана со строкой data: моей подсетки, но я не уверен и не знаю, как ее исправить. Я также изучил возможность перезагрузки данных в подсетке вместо локального использования, но это кажется излишним. Я также попробовал другой подход для своей подсетки, подобный следующему, который также не помог. загрузить любые данные. [code]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); } [/code] Я также должен упомянуть, что в моем браузере открыто окно консоли в разделе «Инструменты разработчика», и ни для одного из приведенных выше кодов, показанных здесь, не возникает ошибок.