jQWidgets Forums

Forum Replies Created

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts

  • learner
    Participant

    hello Dimitar, Thank for the reply. If cellclassname works for the nested grids too, why didn’t my code work . The fire bug error shows cellclassname is not identified. And also I need the whole row highlighted, instead of a single cell.


    learner
    Participant

    Thanks Peter, Ok then tell me how would I dynamically set the Grid’s source property, what I just tried was omitted the data and localdata property and inside source made the datafields according to my data. But couldn’t get the data loaded. Please help!!


    learner
    Participant

    Thanks Peter for the fast response. The example you gave me uses
    var data = ‘[{ “CompanyName”: “Alfreds Futterkiste”, “ContactName”: “Maria Anders”, “ContactTitle”: “Sales Representative”,…….}]’ as hard coding the data. But I cannot do this as my data is dynamically created by my function.


    learner
    Participant

    Hello, I have a little different scenario than this. I want to populate the grid row wise in a nested grid. How can I accomplish this? Please help.


    learner
    Participant

    Hello Dimitar or someone else there to help?


    learner
    Participant

    This is my formatted code. Please look at it.

    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title id='Description'> nested Grid plugins.</title>
        <link rel="stylesheet" href="~/Scripts/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="~/Scripts/jqwidgets/jqxcore.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxdata.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxbuttons.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxscrollbar.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxmenu.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.selection.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxnumberinput.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxwindow.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxlistbox.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxdropdownlist.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxinput.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.filter.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.sort.js"></script>
    
        <script type="text/javascript">
            $(document).ready(function () {
                var url = "/Merchant1/GetRequestTypeList";
    
                var source =
                {
                    datafields: [
                        { name: 'RequestTypeId' },
                        { name: 'RequestTypeName' }
                    ],
                    //root: "Employees",
                    //record: "Employee",
                    id: 'RequestTypeId',
                    datatype: "json",
                    async: false,
                    url: url
                };
    
                // initialize the input fields.
    
                var employeesAdapter = new $.jqx.dataAdapter(source);
    
                var orderdetailsurl = "/Merchant1/GetRequestTypeList";
    
                var ordersSource =
                {
                    datafields: [
                        { name: 'RequestTypeId', type: 'integer' },
                        { name: 'RequestDetailId', type: 'integer' },
                        { name: 'RequestDetailName', type: 'string' }
    
                    ],
                    //root: "Orders",
                    records: "RequestDetailId",
                    datatype: "json",
                    url: orderdetailsurl,
                    async: false
                };
    
                var ordersDataAdapter = new $.jqx.dataAdapter(ordersSource, { autoBind: true });
                var editrow = -1;
                orders = ordersDataAdapter.records;
                var nestedGrids = new Array();
    
                // create nested grid.
                var initrowdetails = function (index, parentElement, gridElement, records) {
                    var id = records.uid.toString();
                    var grid = $($(parentElement).children()[0]);
                    nestedGrids[index] = grid;
                    var filtergroup = new $.jqx.filter();
                    var filter_or_operator = 1;
                    var filtervalue = id;
                    var filtercondition = 'equal';
                    var filter = filtergroup.createfilter('stringfilter', filtervalue, filtercondition);
                    // fill the orders depending on the id.
                    var ordersbyid = [];
                    for (var m = 0; m < orders.length; m++) {
                        var result = filter.evaluate(orders[m]["RequestTypeId"]);
                        if (result)
                            ordersbyid.push(orders[m]);
                    }
    
                    var orderssource = {
                        datafields: [
                          { name: 'RequestTypeId', type: 'integer' },
                        { name: 'RequestDetailId', type: 'integer' },
                        { name: 'RequestDetailName', type: 'string' },
    
                        ],
                        id: 'RequestDetailId',
                        localdata: ordersbyid
                    }
                    // initialize the input fields.
                    $("#RequestDetailName").jqxInput();
                    $("#RequestDetailName").width(150);
                    $("#RequestDetailName").height(23);
    
                    $("#RequestDetailId").jqxNumberInput({ spinMode: 'simple', width: 150, height: 23, min: 0, decimalDigits: 0, spinButtons: true });
    
                    var nestedGridAdapter = new $.jqx.dataAdapter(orderssource);
                    var editrow = -1;
                    var idd;
                    if (grid != null) {
                        grid.jqxGrid({
                            source: nestedGridAdapter, width: 780, height: 200,
    
                            columns: [
                              { text: 'RequestDetailId', datafield: 'RequestDetailId', width: 200 },
                              { text: 'RequestDetailName', datafield: 'RequestDetailName', width: 200 },
                           {
                               text: 'Edit', datafield: 'Edit', width: 80, columntype: 'button', cellsrenderer: function () {
                                   return "Edit";
                               }, buttonclick: function (row) {
                                   // open the popup window when the user clicks a button.
                                   editrow = row;
                                   idd = $("#jqxgrid").jqxGrid('getrowid', row);
                                  // openPopup(row);
                                   var offset = $("#jqxgrid").offset();
                                   $("#popupWindow").jqxWindow({ position: { x: parseInt(offset.left) + 60, y: parseInt(offset.top) + 60 } });
    
                                   // get the clicked row's data and initialize the input fields.
                                   var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow);
                                   $("#RequestDetailName").val(dataRecord.RequestDetailName);
                                   $("#RequestDetailId").jqxNumberInput({ decimal: dataRecord.RequestDetailId });
    
                                   // show the popup window.
                                   $("#popupWindow").jqxWindow('open');
                                   //var id = (row + 1).toString();
                                   //loadDetailsGrid(id);
                               }
                           }
                            ]
                        });
                    }
                }
                // initialize the popup window and buttons.
                $("#popupWindow").jqxWindow({
                    width: 350, resizable: true, isModal: true, autoOpen: false, cancelButton: $("#Cancel"), modalOpacity: 0.01
                });
    
                $("#popupWindow").on('open', function () {
                    $("#RequestDetailName").jqxInput('selectAll');
                });
    
                $("#Cancel").jqxButton();
                $("#Save").jqxButton();
                var renderer = function (row, column, value) {
                    return '<span style="margin-left: 4px; margin-top: 9px; float: left;">' + value + '</span>';
                }
    
                // creage jqxgrid
                $("#jqxgrid").jqxGrid(
                {
                    width: 850,
                    height: 365,
                    source: source,
                    rowdetails: true,
                    rowsheight: 35,
                    initrowdetails: initrowdetails,
                    rowdetailstemplate: { rowdetails: "<div id='grid' style='margin: 10px;'></div>", rowdetailsheight: 220, rowdetailshidden: true },
                    ready: function () {
                        $("#jqxgrid").jqxGrid('showrowdetails', 1);
                    },
                    columns: [
    
                          { text: 'RequestTypeId', datafield: 'RequestTypeId', width: 150, cellsrenderer: renderer },
                          { text: 'RequestTypeName', datafield: 'RequestTypeName', width: 150, cellsrenderer: renderer }
                    ]
                });
            });
        </script>
    </head>
    <body class='default'>
        <div id='jqxWidget'>
            <div id="jqxgrid"></div>
            <div style="margin-top: 30px;">
                <div id="cellbegineditevent"></div>
                <div style="margin-top: 10px;" id="cellendeditevent"></div>
            </div>
            <div id="popupWindow">
                <div>Edit</div>
                <div style="overflow: hidden;">
                    <table>
                        <tr>
                            <td align="right">RequestDetailName:</td>
                            <td align="left"><input id="RequestDetailName" /></td>
                        </tr>
                       
                        <tr>
                            <td align="right">RequestDetailId:</td>
                            <td align="left"><div id="RequestDetailId"></div></td>
                        </tr>
                        <tr>
                            <td align="right"></td>
                            <td style="padding-top: 10px;" align="right"><input style="margin-right: 5px;" type="button" id="Save" value="Save" /><input id="Cancel" type="button" value="Cancel" /></td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
    </body>
    </html>
    
    

    learner
    Participant

    Hi, I went through all these links. I have been able to create a nested grid.Also I have been able to create a popup window when the edit button is clicked for the nested grid. But my problem is data is not being loaded on the popup window. Please help me to find what is missing or where am I mistaken.

    
    
    

    <!DOCTYPE html>
    <html lang=”en”>
    <head>
    <title id=’Description’> nested Grid plugins.</title>
    <link rel=”stylesheet” href=”~/Scripts/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=”~/Scripts/jqwidgets/jqxcore.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxdata.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxbuttons.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxscrollbar.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxmenu.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.selection.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxnumberinput.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxwindow.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxlistbox.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxdropdownlist.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxinput.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.filter.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.sort.js”></script>

    <script type=”text/javascript”>
    $(document).ready(function () {
    var url = “/Merchant1/GetRequestTypeList”;

    var source =
    {
    datafields: [
    { name: ‘RequestTypeId’ },
    { name: ‘RequestTypeName’ }
    ],
    //root: “Employees”,
    //record: “Employee”,
    id: ‘RequestTypeId’,
    datatype: “json”,
    async: false,
    url: url
    };

    // initialize the input fields.

    var employeesAdapter = new $.jqx.dataAdapter(source);

    var orderdetailsurl = “/Merchant1/GetRequestTypeList”;

    var ordersSource =
    {
    datafields: [
    { name: ‘RequestTypeId’, type: ‘integer’ },
    { name: ‘RequestDetailId’, type: ‘integer’ },
    { name: ‘RequestDetailName’, type: ‘string’ }

    ],
    //root: “Orders”,
    records: “RequestDetailId”,
    datatype: “json”,
    url: orderdetailsurl,
    async: false
    };

    var ordersDataAdapter = new $.jqx.dataAdapter(ordersSource, { autoBind: true });
    var editrow = -1;
    orders = ordersDataAdapter.records;
    var nestedGrids = new Array();

    // create nested grid.
    var initrowdetails = function (index, parentElement, gridElement, records) {
    var id = records.uid.toString();
    var grid = $($(parentElement).children()[0]);
    nestedGrids[index] = grid;
    var filtergroup = new $.jqx.filter();
    var filter_or_operator = 1;
    var filtervalue = id;
    var filtercondition = ‘equal’;
    var filter = filtergroup.createfilter(‘stringfilter’, filtervalue, filtercondition);
    // fill the orders depending on the id.
    var ordersbyid = [];
    for (var m = 0; m < orders.length; m++) {
    var result = filter.evaluate(orders[m][“RequestTypeId”]);
    if (result)
    ordersbyid.push(orders[m]);
    }

    var orderssource = {
    datafields: [
    { name: ‘RequestTypeId’, type: ‘integer’ },
    { name: ‘RequestDetailId’, type: ‘integer’ },
    { name: ‘RequestDetailName’, type: ‘string’ },

    ],
    id: ‘RequestDetailId’,
    localdata: ordersbyid
    }
    // initialize the input fields.
    $(“#RequestDetailName”).jqxInput();
    $(“#RequestDetailName”).width(150);
    $(“#RequestDetailName”).height(23);

    $(“#RequestDetailId”).jqxNumberInput({ spinMode: ‘simple’, width: 150, height: 23, min: 0, decimalDigits: 0, spinButtons: true });

    var nestedGridAdapter = new $.jqx.dataAdapter(orderssource);
    var editrow = -1;
    var idd;
    if (grid != null) {
    grid.jqxGrid({
    source: nestedGridAdapter, width: 780, height: 200,

    columns: [
    { text: ‘RequestDetailId’, datafield: ‘RequestDetailId’, width: 200 },
    { text: ‘RequestDetailName’, datafield: ‘RequestDetailName’, width: 200 },
    {
    text: ‘Edit’, datafield: ‘Edit’, width: 80, columntype: ‘button’, cellsrenderer: function () {
    return “Edit”;
    }, buttonclick: function (row) {
    // open the popup window when the user clicks a button.
    editrow = row;
    idd = $(“#jqxgrid”).jqxGrid(‘getrowid’, row);
    // openPopup(row);
    var offset = $(“#jqxgrid”).offset();
    $(“#popupWindow”).jqxWindow({ position: { x: parseInt(offset.left) + 60, y: parseInt(offset.top) + 60 } });

    // get the clicked row’s data and initialize the input fields.
    var dataRecord = $(“#jqxgrid”).jqxGrid(‘getrowdata’, editrow);
    $(“#RequestDetailName”).val(dataRecord.RequestDetailName);
    $(“#RequestDetailId”).jqxNumberInput({ decimal: dataRecord.RequestDetailId });

    // show the popup window.
    $(“#popupWindow”).jqxWindow(‘open’);
    //var id = (row + 1).toString();
    //loadDetailsGrid(id);
    }
    }
    ]
    });
    }
    }
    // initialize the popup window and buttons.
    $(“#popupWindow”).jqxWindow({
    width: 350, resizable: true, isModal: true, autoOpen: false, cancelButton: $(“#Cancel”), modalOpacity: 0.01
    });

    $(“#popupWindow”).on(‘open’, function () {
    $(“#RequestDetailName”).jqxInput(‘selectAll’);
    });

    $(“#Cancel”).jqxButton();
    $(“#Save”).jqxButton();
    var renderer = function (row, column, value) {
    return ‘<span style=”margin-left: 4px; margin-top: 9px; float: left;”>’ + value + ‘</span>’;
    }

    // creage jqxgrid
    $(“#jqxgrid”).jqxGrid(
    {
    width: 850,
    height: 365,
    source: source,
    rowdetails: true,
    rowsheight: 35,
    initrowdetails: initrowdetails,
    rowdetailstemplate: { rowdetails: “<div id=’grid’ style=’margin: 10px;’></div>”, rowdetailsheight: 220, rowdetailshidden: true },
    ready: function () {
    $(“#jqxgrid”).jqxGrid(‘showrowdetails’, 1);
    },
    columns: [

    { text: ‘RequestTypeId’, datafield: ‘RequestTypeId’, width: 150, cellsrenderer: renderer },
    { text: ‘RequestTypeName’, datafield: ‘RequestTypeName’, width: 150, cellsrenderer: renderer }
    ]
    });
    });
    </script>
    </head>
    <body class=’default’>
    <div id=’jqxWidget’>
    <div id=”jqxgrid”></div>
    <div style=”margin-top: 30px;”>
    <div id=”cellbegineditevent”></div>
    <div style=”margin-top: 10px;” id=”cellendeditevent”></div>
    </div>
    <div id=”popupWindow”>
    <div>Edit</div>
    <div style=”overflow: hidden;”>
    <table>
    <tr>
    <td align=”right”>RequestDetailName:</td>
    <td align=”left”><input id=”RequestDetailName” /></td>
    </tr>

    <tr>
    <td align=”right”>RequestDetailId:</td>
    <td align=”left”><div id=”RequestDetailId”></div></td>
    </tr>
    <tr>
    <td align=”right”></td>
    <td style=”padding-top: 10px;” align=”right”><input style=”margin-right: 5px;” type=”button” id=”Save” value=”Save” /><input id=”Cancel” type=”button” value=”Cancel” /></td>
    </tr>
    </table>
    </div>
    </div>
    </div>
    </body>
    </html>`

    Thank you in advance.


    learner
    Participant

    Thank you Dimitar for the link. But still I couldn’t find where I am mistaken. Please have a look at it. I am getting the parent data loaded. But the nested grid data are not being loaded. I also get the same number of rows as my data Is.But still the actual data is not being loaded.Please help me on this.
    This is my json data created by the controller.

      [{"OldDataId":3,"RequestTypeId":1,"RequestTypeName":"Restaurant","RequestDetailId":1,"RequestDetailName":"House"},    {"OldDataId":4,"RequestTypeId":1,"RequestTypeName":"Restaurant","RequestDetailId":2,"RequestDetailName":"Kfc"},{"OldDataId":5,"RequestTypeId":2,"RequestTypeName":"RetailStore","RequestDetailId":3,"RequestDetailName":"BigMart"}]
    
    

    And this is my code for loading the data:

    I need the RequestTypeId and RequestTypeName on the parent data and RequestDetailId and RequestDetailName on the nested grid.

    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>NestedGrid</title>
        <link rel="stylesheet" href="~/Scripts/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="~/Scripts/jqwidgets/jqxcore.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxdata.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxbuttons.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxscrollbar.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxmenu.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.selection.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.filter.js"></script>
        <script type="text/javascript" src="~/Scripts/jqwidgets/jqxgrid.sort.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                var url = "/Merchant1/GetRequestTypeList";
    
                var source =
                {
                    datafields: [
                        { name: 'RequestTypeId' },
                        { name: 'RequestTypeName' },
                       
                    ],
                    //root: "OldDataId",
                    //record: "RequestType",
                    id: 'RequestTypeId',
                    datatype: "json",
                    async: false,
                    url: url
                };
    
                var employeesAdapter = new $.jqx.dataAdapter(source);
    
                var orderdetailsurl = "/Merchant1/GetRequestTypeList";
    
                var ordersSource =
                {
                    datafields: [
                        { name: 'RequestTypeId', type: 'integer' },
                        { name: 'RequestDetailName', type: 'string' },
                        { name: 'RequestDetailId', type: 'integer' },
                    ],
                    //root: "p",
                    records: "RequestDetailName",
                    datatype: "json",
                    url: orderdetailsurl,
                    async: false
                };
    
                var ordersDataAdapter = new $.jqx.dataAdapter(ordersSource, { autoBind: true });
                orders = ordersDataAdapter.records;
                var nestedGrids = new Array();
    
                // create nested grid.
                var initrowdetails = function (index, parentElement, gridElement, records) {
                    var id = records.uid.toString();
                    var grid = $($(parentElement).children()[0]);
                    nestedGrids[index] = grid;
                    var filtergroup = new $.jqx.filter();
                    var filter_or_operator = 1;
                    var filtervalue = id;
                    var filtercondition = 'equal';
                    var filter = filtergroup.createfilter('stringfilter', filtervalue, filtercondition);
                    // fill the orders depending on the id.
                    var ordersbyid = [];
                    for (var m = 0; m < orders.length; m++) {
                        var result = filter.evaluate(orders[m]["RequestTypeId"]);
                        if (result)
                            ordersbyid.push(orders[m]);
                    }
    
                    var orderssource = { datafields: [
                        { name: 'RequestTypeId', type: 'integer' },
                        { name: 'RequestDetailName', type: 'string' },
                        { name: 'RequestDetailId', type: 'integer' }
                        
                    ],
                        id: 'RequestDetailId',
                        localdata: ordersbyid
                    }
                    var nestedGridAdapter = new $.jqx.dataAdapter(orderssource);
    
                    if (grid != null) {
                        grid.jqxGrid({
                            source: nestedGridAdapter, width: 780, height: 200,
                            columns: [
                              { text: 'RequestDetailId', datafield: 'Request Detail Id', width: 200 },
                              { text: 'RequestDetailName', datafield: 'Request Detail Name', width: 200 },
                             
                            ]
                        });
                    }
                }
    
                //var photorenderer = function (row, column, value) {
                //    var name = $('#jqxgrid').jqxGrid('getrowdata', row).FirstName;
                //    var imgurl = '../../images/' + name.toLowerCase() + '.png';
                //    var img = '<div style="background: white;"><img style="margin:2px; margin-left: 10px;" width="32" height="32" src="' + imgurl + '"></div>';
                //    return img;
                //}
    
                var renderer = function (row, column, value) {
                    return '<span style="margin-left: 4px; margin-top: 9px; float: left;">' + value + '</span>';
                }
    
                // creage jqxgrid
                $("#jqxgrid").jqxGrid(
                {
                    width: 850,
                    height: 365,
                    source: source,
                    rowdetails: true,
                    rowsheight: 35,
                    initrowdetails: initrowdetails,
                    rowdetailstemplate: { rowdetails: "<div id='grid' style='margin: 10px;'></div>", rowdetailsheight: 220},
                    ready: function () {
                        $("#jqxgrid").jqxGrid('showrowdetails', 1);
                    },
                    columns: [
                          { text: 'RequestTypeId', datafield: 'RequestTypeId', width: 150 },
                          { text: 'RequestTypeName', datafield: 'RequestTypeName', width: 150, cellsrenderer: renderer },
                        
                    ]
                });
            });
            </script>
        </head>
        <body class='default'>
            <div id="jqxgrid">
            </div>
        </body>
        </html>
    

    learner
    Participant

    hello,
    I am using this grid example but how do I use the “root” and “record” type I am confused. Please help me. I have edited this code in my project which is like this. Please look at it. I am getting the parent values but not getting the nested grid values. Please help me where am I wrong.

    `<!DOCTYPE html>

    <html>
    <head>
    <meta name=”viewport” content=”width=device-width” />
    <title>NestedGrid</title>
    <link rel=”stylesheet” href=”~/Scripts/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=”~/Scripts/jqwidgets/jqxcore.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxdata.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxbuttons.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxscrollbar.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxmenu.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.selection.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.filter.js”></script>
    <script type=”text/javascript” src=”~/Scripts/jqwidgets/jqxgrid.sort.js”></script>
    <script type=”text/javascript”>
    $(document).ready(function () {
    var url = “/Merchant1/GetRequestTypeList”;

    var source =
    {
    datafields: [
    { name: ‘RequestTypeId’ },
    { name: ‘RequestTypeName’ },

    ],
    //root: “Employees”,
    //record: “Employee”,
    id: ‘RequestTypeId’,
    datatype: “json”,
    async: false,
    url: url
    };

    var employeesAdapter = new $.jqx.dataAdapter(source);

    var orderdetailsurl = “/Merchant1/GetRequestDetailList”;

    var ordersSource =
    {
    datafields: [
    { name: ‘RequestTypeId’, type: ‘integer’ },
    { name: ‘RequestDetailName’, type: ‘string’ },
    { name: ‘RequestDetailId’, type: ‘integer’ },
    ],
    root: “Orders”,
    record: “Order”,
    datatype: “json”,
    url: orderdetailsurl,
    async: false
    };

    var ordersDataAdapter = new $.jqx.dataAdapter(ordersSource, { autoBind: true });
    orders = ordersDataAdapter.records;
    var nestedGrids = new Array();

    // create nested grid.
    var initrowdetails = function (index, parentElement, gridElement, record) {
    var id = record.uid.toString();
    var grid = $($(parentElement).children()[0]);
    nestedGrids[index] = grid;
    var filtergroup = new $.jqx.filter();
    var filter_or_operator = 1;
    var filtervalue = id;
    var filtercondition = ‘equal’;
    var filter = filtergroup.createfilter(‘stringfilter’, filtervalue, filtercondition);
    // fill the orders depending on the id.
    var ordersbyid = [];
    for (var m = 0; m < orders.length; m++) {
    var result = filter.evaluate(orders[m][“RequestTypeId”]);
    if (result)
    ordersbyid.push(orders[m]);
    }

    var orderssource = { datafields: [
    { name: ‘RequestTypeId’, type: ‘integer’ },
    { name: ‘RequestDetailName’, type: ‘string’ },
    { name: ‘RequestDetailId’, type: ‘integer’ }

    ],
    id: ‘RequestTypeId’,
    localdata: ordersbyid
    }
    var nestedGridAdapter = new $.jqx.dataAdapter(orderssource);

    if (grid != null) {
    grid.jqxGrid({
    source: nestedGridAdapter, width: 780, height: 200,
    columns: [
    { text: ‘RequestDetailId’, datafield: ‘Request Detail Id’, width: 200 },
    { text: ‘RequestDetailName’, datafield: ‘Request Detail Name’, width: 200 },

    ]
    });
    }
    }

    var photorenderer = function (row, column, value) {
    var name = $(‘#jqxgrid’).jqxGrid(‘getrowdata’, row).FirstName;
    var imgurl = ‘../../images/’ + name.toLowerCase() + ‘.png’;
    var img = ‘<div style=”background: white;”></div>’;
    return img;
    }

    var renderer = function (row, column, value) {
    return ‘<span style=”margin-left: 4px; margin-top: 9px; float: left;”>’ + value + ‘</span>’;
    }

    // creage jqxgrid
    $(“#jqxgrid”).jqxGrid(
    {
    width: 850,
    height: 365,
    source: source,
    rowdetails: true,
    rowsheight: 35,
    initrowdetails: initrowdetails,
    rowdetailstemplate: { rowdetails: “<div id=’grid’ style=’margin: 10px;’></div>”, rowdetailsheight: 220},
    ready: function () {
    $(“#jqxgrid”).jqxGrid(‘showrowdetails’, 1);
    },
    columns: [
    { text: ‘RequestTypeId’, datafield: ‘RequestTypeId’, width: 150 },
    { text: ‘RequestTypeName’, datafield: ‘RequestTypeName’, width: 150, cellsrenderer: renderer },

    ]
    });
    });
    </script>
    </head>
    <body class=’default’>
    <div id=”jqxgrid”>
    </div>
    </body>
    </html>


    learner
    Participant

    Hello Peter or anyone else there am I being able to explain my situation?


    learner
    Participant

    Hi Peter, Thanks for the quick reply. But my situation is different, I don’t get all data at a time and cannot render it at once.I have two separate json data as old json and new json. What I need to do is display two different data as old data and new data in separate columns in a single grid so that I can point out the differences between the data.How will I accomplish this.I need the grid to display like this.

    old new
    people people
    nice people nice people
    great people great people1
    computer computer
    PC laptop


    learner
    Participant

    Hello,

    I have slightly different situation than this.I have two json data old one and new one separately but of similar nature only the varying the value which I need to display in two different columns. So my question is I have only one source object called local data. So how could I accomplish this getting two different data in different columns. My Json data is as follows:

    OLD
    {
    “workers”: [
    {
    “catid”: 1,
    “catname”: “People”,
    “workers”: [
    {
    “wid”: 10,
    “wname”: “NicePeople”
    },
    {
    “wid”: 11,
    “wname”: “GreatPeople”
    }
    ]
    },
    {
    “catid”: 2,
    “catname”: “Computer”,
    “workers”: [
    {
    “wid”: 12,
    “wname”: “Pc”
    }
    ]
    }
    ]
    }

    NEW

    {
    “workers”: [
    {
    “catid”: 1,
    “catname”: “People”,
    “workers”: [
    {
    “wid”: 10,
    “wname”: “NicePeople”
    },
    {
    “wid”: 11,
    “wname”: “GreatPeople 1”
    }
    ]
    },
    {
    “catid”: 2,
    “catname”: “Computer”,
    “workers”: [
    {
    “wid”: 12,
    “wname”: “Laptop”,
    “denomination”:[100,200,300]
    }
    ]
    }
    ]
    }

Viewing 12 posts - 1 through 12 (of 12 total)