Jquery ui 无法选择子网格中的行:Jqgrid

Jquery ui 无法选择子网格中的行:Jqgrid,jquery-ui,jquery,jquery-plugins,jqgrid,Jquery Ui,Jquery,Jquery Plugins,Jqgrid,我正在使用jqgrid,并在其中添加了一个子网格,如下所示 如你所见, 列为11和13的行是主网格行 每行都有感兴趣的子网格, addrecord元素显示子网格的Add弹出窗口 下面是子网格的代码 subGridRowExpanded: function(subgrid_id, row_id) { var subgrid_table_id, pager_id; subgrid_table_id = subgrid_id+"_t";

我正在使用jqgrid,并在其中添加了一个子网格,如下所示

如你所见, 列为11和13的行是主网格行

每行都有感兴趣的子网格, addrecord元素显示子网格的Add弹出窗口

下面是子网格的代码

subGridRowExpanded: function(subgrid_id, row_id) {
            var subgrid_table_id, pager_id;
            subgrid_table_id = subgrid_id+"_t";
            pager_id = "p_"+subgrid_table_id;
            $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
            jQuery("#"+subgrid_table_id).jqGrid({
                url:"shops?q=2&ShopID="+row_id,
                datatype: "xml",
                colNames: ['Interest'],
                colModel: [
                    //{name:"Id",index:"ShopID",width:80,editable:false,editoptions:{readonly:false,size:40}}, //Shop ID not required
                    {name:"id",index:"id",editable:true,edittype:"select",editoptions:{dataUrl:'shops?q=3&ShopID='+row_id},editrules:{required:true}}
                ],
                rowNum:10,
                pager: pager_id,
                width: '100%',
                height: '100%',
                scrollOffset: 0,
                sortname: 'num',
                sortorder: "asc",
                height: '100%',
                editurl:'shops?q=5&ShopID='+row_id
            });
            jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:true,del:true})
        },
        subGridRowColapsed: function(subgrid_id, row_id) {
            // this function is called before removing the data
            //var subgrid_table_id;
            //subgrid_table_id = subgrid_id+"_t";
            //jQuery("#"+subgrid_table_id).remove();
        }
问题是,当子网格中有多个元素时,我可以选择使用最新版本的Chrome,但当子网格中只有一个元素时,如果您注意到颜色差异,我可以选择它。请参阅子网格元素“礼物”-选择在第13行下面,一旦选择“礼物”,可以删除

更新: 在firefox和IE中,只从子网格中选择第一行

代码中有什么错误吗?为什么子网格中有多个图元时不能选择单个图元


感谢您抽出时间,谢谢

我想您的身份证副本有问题。HTML不允许在具有相同值的相同HTML页面上使用id属性。所有id属性的值都必须是唯一的。我建议您使用Chrome/IE开发工具或Firebug来验证是否存在问题。您只需检查栅格和子栅格元素上的id属性

另一方面,jqGrid的所有行和所有元素都成为分配的id属性。通常,您必须在url的响应中在服务器端填写id。问题是,通常使用来自数据库id的值,但通常只有数据库中一个表的唯一id,而不是数据库中的所有表的唯一id。因此,您可以很容易地看到这样一个场景:多个jqGrids或带有subrird的grid获得id重复的行


解决此问题最简单的方法是使用idPrefix选项,该选项在jqGrid之后引入。主要优点是,您可以继续使用数据库中的原始id值,并在jqGrid中使用id属性,这将是唯一的,因为从服务器返回的id值生成id属性,但使用前缀。在里面因此,我建议您对所有子网格使用不同的IDPrefix。例如,您可以在子网格中使用idPrefix:'s'+行\u id+'\请参见和。

谢谢,您是对的,实际上子网格元素的id是相同的,问题是,我使用该id作为主键,我需要使用一些组合来唯一标识每一行,我试试看this@pradeep:如果您添加的idPrefix值在每个网格和子网格中都会有所不同,则问题应该得到解决。非常感谢!,没有你们这样的家伙,我们如何生存:我在服务器端修改了前缀,使每个子网格行都有唯一的id