1

我对jqWidgets中的jqxGrid的使用有一点疑问。我正在尝试从另一个页面动态选择我的表格的一行。我自己解释:

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

我找到了如何通过她的索引选择一行,$('#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},
        ]
    });
4

1 回答 1

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');
    });
于 2013-10-02T15:40:59.217 回答