jQWidgets Forums

jQuery UI Widgets Forums Grid selectionmode: "checbox" and server-side filtering

Tagged: 

This topic contains 17 replies, has 4 voices, and was last updated by  Peter Stoev 11 years, 8 months ago.

Viewing 15 posts - 1 through 15 (of 18 total)
  • Author

  • gediminas
    Member

    Hello!

    Using selectionmode: checkbox when the grid is filtered server-side the selected checkboxes seem not to get the “selected” CSS class applied. Initially, when the grid is loaded, the checkboxes work fine, but when some filtering is applied (i.e. using the filter row), clicking a checkbox does not trigger it to get the “selected” CSS class and thus it is not displayed as checked. However, internally it is checked as we can determine using the selectedrowindexes method.


    luesak
    Participant

    the new selectionmode: checkbox mode is really cool. Let’s hope this can be resolved soon!


    gediminas
    Member

    Any response from the jqWidgets maintainers?


    gediminas
    Member

    I am very disappointed with the support here. Why was this issue ignored in the latest release?


    Peter Stoev
    Keymaster

    Hi,

    If you experience an issue, then please Provide a sample which demonstrates it and step by step instructions. In addition, the behavior explained here is not confirmed so you should not expect fix for something which we do not know

    Regards,
    Petet Stoev


    gediminas
    Member

    http://pastebin.com/s0Q1MjgV
    This is a modified version of your phpdemos/server_side_grid_filtering.
    Steps:
    Filter by “Ship name” column.
    Try to use the chackboxes to select rows.


    gediminas
    Member

    jqWidgets v3.0.3


    gediminas
    Member

    Is it clear? Please reply.


    gediminas
    Member

    Still no response…


    Peter Stoev
    Keymaster

    Hi gediminas,

    The check state seems to be not applied after server filtering. I will add a work item and we will resolve that rendering issue in a future version.

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com/


    aivaras
    Member

    Hi. Are you planning to fix this in 3.0.4?


    aivaras
    Member

    Hello! Please do not ignore me! How about this fix?


    Peter Stoev
    Keymaster

    Hi aivaras,

    I cannot provide a specific time frame when something would be fixed or implemented. When we have a new release, you can check the Release History which lists the changes.

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com/


    aivaras
    Member

    This is still not fixed in 3.0.4.
    As luesak said “selectionmode: checkbox mode is really cool” but we can’t use it, because it doesn’t work after server filtering.
    When we should expect this to work properly?


    Peter Stoev
    Keymaster

    Hi aivaras,

    At least we are unable to reproduce such behavior with 3.0.4. If you reproduce it, delete your browser’s history and try again

    You can find below a working sample:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title id='Description'>In this demo jqxGrid uses a virtualized paging which enables you to handle very large data sets without any impact on client side performance.</title>
    <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
    <script type="text/javascript" src="../../scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxmenu.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxgrid.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxgrid.pager.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxgrid.selection.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxgrid.sort.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxgrid.filter.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxcheckbox.js"></script>
    <script type="text/javascript" src="../../scripts/demos.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
    // prepare the data
    var data = new Array();
    var firstNames =
    [
    "Andrew", "Nancy", "Shelley", "Regina", "Yoshi", "Antoni", "Mayumi", "Ian", "Peter", "Lars", "Petra", "Martin", "Sven", "Elio", "Beate", "Cheryl", "Michael", "Guylene"
    ];
    var lastNames =
    [
    "Fuller", "Davolio", "Burke", "Murphy", "Nagase", "Saavedra", "Ohno", "Devling", "Wilson", "Peterson", "Winkler", "Bein", "Petersen", "Rossi", "Vileid", "Saylor", "Bjorn", "Nodier"
    ];
    var productNames =
    [
    "Black Tea", "Green Tea", "Caffe Espresso", "Doubleshot Espresso", "Caffe Latte", "White Chocolate Mocha", "Cramel Latte", "Caffe Americano", "Cappuccino", "Espresso Truffle", "Espresso con Panna", "Peppermint Mocha Twist"
    ];
    var priceValues =
    [
    "2.25", "1.5", "3.0", "3.3", "4.5", "3.6", "3.8", "2.5", "5.0", "1.75", "3.25", "4.0"
    ];
    // generate sample data.
    var generatedata = function (startindex, endindex) {
    var data = {};
    for (var i = startindex; i < endindex; i++) {
    var row = {};
    var productindex = Math.floor(Math.random() * productNames.length);
    var price = parseFloat(priceValues[productindex]);
    var quantity = 1 + Math.round(Math.random() * 10);
    row["id"] = i;
    row["firstname"] = firstNames[Math.floor(Math.random() * firstNames.length)];
    row["lastname"] = lastNames[Math.floor(Math.random() * lastNames.length)];
    row["productname"] = productNames[productindex];
    row["price"] = price;
    row["quantity"] = quantity;
    row["total"] = price * quantity;
    data[i] = row;
    }
    return data;
    }
    var source =
    {
    datatype: "array",
    localdata: {},
    totalrecords: 1000000
    };
    // load virtual data.
    var rendergridrows = function (params) {
    var data = generatedata(params.startindex, params.endindex);
    return data;
    }
    var totalcolumnrenderer = function (row, column, cellvalue) {
    var cellvalue = $.jqx.dataFormat.formatnumber(cellvalue, 'c2');
    return '<span style="margin: 6px 3px; font-size: 12px; float: right; font-weight: bold;">' + cellvalue + '</span>';
    }
    var dataAdapter = new $.jqx.dataAdapter(source);
    $("#jqxgrid").jqxGrid(
    {
    width: 670,
    autoheight: true,
    source: dataAdapter,
    virtualmode: true,
    selectionmode: 'checkbox',
    filterable: true,
    showfilterrow: true,
    sortable: true,
    pageable: true,
    rendergridrows: rendergridrows,
    columns: [
    { text: 'Id', datafield: 'id', width: 50 },
    { text: 'First Name', datafield: 'firstname', width: 100 },
    { text: 'Last Name', datafield: 'lastname', width: 100 },
    { text: 'Product', datafield: 'productname', width: 180 },
    { text: 'Quantity', datafield: 'quantity', width: 70, cellsalign: 'right' },
    { text: 'Unit Price', datafield: 'price', width: 70, cellsalign: 'right', cellsformat: 'c2' },
    { text: 'Total', datafield: 'total', cellsrenderer: totalcolumnrenderer, width: 100, cellsalign: 'right' }
    ]
    });
    });
    </script>
    </head>
    <body class='default'>
    <div id='jqxWidget' style="font-size: 13px; font-family: Verdana; float: left;">
    <div id="jqxgrid"></div>
    </div>
    </body>
    </html>

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com/

Viewing 15 posts - 1 through 15 (of 18 total)

You must be logged in to reply to this topic.