free-jqgrid 在子网格中填充下拉列表

free-jqgrid populate drop down in subgrid

我在子网格中填充下拉列表时遇到了麻烦。我正在使用 free-jqgrid 4.15.5。在主网格中填充下拉菜单时我没有遇到任何问题,但在尝试在子网格(网格作为子网格选项)中获取模拟下拉菜单时似乎遇到了 ID 问题,有人知道参考或如何填充下拉正确吗?

我当前的下拉测试函数是:

function popUsersT() {

alert("subgrid id : " + window.subgrid_id + "\nfound : " + $("#" + subgrid_id).length + "\nrow id : " + window.row_id + "\nfound(row) : " + $("#" + window.row_id).length + "\ndropdown found : " + $("select", "#" + window.row_id).length + "\nsg_tableID: " + $("#" + sg_tableID).html);
var current = $("#" + subgrid_id).jqGrid('getRowData', $("#" + window.subgrid_table_id )[0].p.selrow).TaskValidator;
alert(current);

$.ajax({
    url: "/Tasks/getUserList",
    datatype: 'json',
    mtype: 'Get',
    async: false,
    success: function (users) {
        $("#Task").html("");
        $("#Proxy").html("");
        $.each(users, function (i, user) {
            $("#Task").append(
                $('<option></option>').val(user.name).html(user.DisplayName)
            );
            $("#Proxy").append(
                $('<option></option>').val(user.name).html(user.DisplayName)
            );
        });
        $("#Task").prop("disabled", false);
        $("#Proxy").prop("disabled", false);
        $("#Task").val(current);
        $("#Proxy").val(current);
    }
});

}

我的部分子网格是:

subGridRowExpanded: function (subgrid_id, row_id) {
        var sg_tableID = subgrid_id + "_t";
        window.subgrid_id = sg_tableID;
        window.row_id = row_id;
        window.subgrid_table_id = sg_tableID;
        //alert(subgrid_id);
        //alert(row_id);
        var pager_id = "p_" + sg_tableID;
        $("#" + subgrid_id).html("<table id='" + sg_tableID + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
        jQuery("#" + sg_tableID).jqGrid({
            url: "/Home/GetTaskSubList/" + row_id,

我一直在尝试使用 Id 值来避免以下错误: 错误:'subgrid_table_id' 未定义 错误:'sg_tableID' 未定义

我确信我在尝试完成这项工作时迷失了方向,希望这是一件容易的事,但我却忽略了。

感谢您的帮助

最终我可以通过设置以下值使其正常工作:

subGridRowExpanded: function (subgrid_id, row_id) {
        var sg_tableID = subgrid_id + "_t";
        window.subgrid_id = sg_tableID;
        window.row_id = row_id;
        window.subgrid_table_id = sg_tableID;

然后通过以下方式引用函数中的值:

var currentOwner = $("#" + subgrid_id).jqGrid('getRowData', $("#" + window.subgrid_table_id)[0].p.selrow).Task;

我不确定我是否完全理解其中的原因,但它似乎确实按需要工作。谢谢