在 jqxGrid 中按一个单元格的值选择一行

Select a row by the value of one cell in jqxGrid

本文关键字:选择 一行 单元格 一个 jqxGrid      更新时间:2023-09-26

我有一个关于jqWidgets使用jqxGrid的小问题。我正在尝试从另一个页面动态选择表格的一行。我解释自己:

的第一页包含用户列表。我希望当我在此列表中选择一个用户时,它会打开一个新页面,例如,通过 PHP 在 GET 中返回的用户的 ID。然后,我想生成一个新的网格,其中包含较少的信息,但已经选择了用户。

我已经找到了如何通过她的索引$('#grid').jqxGrid('selectrow', 10);选择一行,但它不起作用,因为如果对一个表进行排序或过滤,索引就会更改......

那么,有什么办法可以做到这一点吗?

下面是在第一个表上选择行时调用的代码:

$('#search_right').bind('rowselect', function(event){
    var iSocID = $('#search_right').jqxGrid('getcellvalue', event.args.rowindex, 'id');
    $("#soci_right").load('activites/soc.search.php?a=form&id='+iSocID);
    $('#content').jqxTabs('select', 3);
});

这是我第二个列表的生成代码:

var url = 'activites/soc.search.php';
    var source = {
        datatype: "json",
                datafields: [
                    { name: 'name', type: 'string'},
                    { name: 'id', type: 'int'},
                ],
                id: 'id',
                url: url,
                root: 'data'
    };
    dataSource = new $.jqx.dataAdapter(source);
    $("#soci_table").jqxGrid({
        source: dataSource,
        theme: jqxGlobalTheme,
        columnsresize: true,
        sortable: true,
        filterable: true,
        showfilterrow: true,
        columns: [
            { text: 'Name', dataField: 'name'},     
            { text: 'ID', dataField: 'id',  hidden:true},
        ]
    });

在联系了jqWidgets的支持后(谁帮不了我......我做了一个小片段来做这些技巧...但我认为 jqWidget 应该将其添加为 jqxGrid 的默认功能!

我把我的代码贴在这里,希望它能帮助你们中的一些人!

    $('#search_right').bind('rowselect', function(event){
    var iSocID = $('#search_right').jqxGrid('getcellvalue', event.args.rowindex, 'id');
         // Create filter
        var filtergroup = new $.jqx.filter();
        var filtervalue = iSocID;
        var filtercondition = 'EQUAL';
        var filter1 = filtergroup.createfilter('stringfilter', filtervalue, filtercondition);
        var filter_or_operator = 1;
        filtergroup.addfilter(filter_or_operator, filter1);
        $("#soci_table").jqxGrid('addfilter', 'id', filtergroup);
        // Apply filter
        $("#soci_table").jqxGrid('applyfilters');
        // Select row
        $('#soci_table').jqxGrid('selectrow', 0);
        // Remove filter
        $("#soci_table").jqxGrid('clearfilters');
    });