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

时间:2013-10-02 12:44:20

标签: javascript php jqxgrid

我对 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},
        ]
    });

1 个答案:

答案 0 :(得分:1)

在联系了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');
    });