Title: Loading combogrid columns in datagrid Post by: WizPS on October 30, 2022, 02:43:42 PM Hi,
Please help loading combogrid columns inside onShowPanel event like attached example. When clicking any product combobox, there should be a dropdown panel with 3 columns and pagination and this is not occuring for me. https://jsfiddle.net/79ubm42f/ Code: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Layout - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/demo/demo.css"> <script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.min.js"></script> <script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script> </head> <body> <h2>Row Editing in DataGrid</h2> <p>Click the row to start editing.</p> <div style="margin:20px 0;"></div> <div id="dg"></div> <script type="text/javascript"> $('#dg').datagrid({ iconCls: 'icon-edit', singleSelect: true, onClickCell: onClickCell, onEndEdit: onEndEdit, columns: [[{ field: 'itemid', title: 'Item ID', width: 80 } , { field: 'productid', title: 'Product', width: 100, formatter: function (value, row) { return row.productname; }, editor: { type: 'combogrid', options: { panelWidth: 450 , valueField: 'productid', textField: 'productname', required: true, onShowPanel: function () { $(this).combogrid({ columns: [[{ field: 'field1', title: 'field1', width: 80 }, { field: 'field2', title: 'field2', width: 80 }, { field: 'field3', title: 'field3', width: 80 }]] , pagination: true }); } } } }, { field: 'listprice', title: 'listprice', width: 80, align: 'right', editor: { type: 'numberbox', options: { precision: 2 } } } , { field: 'unitcost', title: 'Unit Cost', width: 80, align: 'right', editor: { type: 'numberbox', options: { precision: 2 } } } , { field: 'attr1', title: 'attr1', width: 250, editor: 'textbox' } , { field: 'status', title: 'status', width: 60, align: 'center', editor: { type: 'checkbox', options: { on: 'P', off: '' } } } ]] , data: [ { "productid": "FI-SW-01", "productname": "Koi", "unitcost": "10.00", "status": "P", "listprice": "36.50", "attr1": "Large", "itemid": "EST-1" }, { "productid": "K9-DL-01", "productname": "Dalmation", "unitcost": "12.00", "status": "P", "listprice": "18.50", "attr1": "Spotted Adult Female", "itemid": "EST-10" }, { "productid": "RP-SN-01", "productname": "Rattlesnake", "unitcost": "12.00", "status": "P", "listprice": "38.50", "attr1": "Venomless", "itemid": "EST-11" }, { "productid": "RP-SN-01", "productname": "Rattlesnake", "unitcost": "12.00", "status": "P", "listprice": "26.50", "attr1": "Rattleless", "itemid": "EST-12" }, { "productid": "RP-LI-02", "productname": "Iguana", "unitcost": "12.00", "status": "P", "listprice": "35.50", "attr1": "Green Adult", "itemid": "EST-13" }, { "productid": "FL-DSH-01", "productname": "Manx", "unitcost": "12.00", "status": "P", "listprice": "158.50", "attr1": "Tailless", "itemid": "EST-14" }, { "productid": "FL-DSH-01", "productname": "Manx", "unitcost": "12.00", "status": "P", "listprice": "83.50", "attr1": "With tail", "itemid": "EST-15" }, { "productid": "FL-DLH-02", "productname": "Persian", "unitcost": "12.00", "status": "P", "listprice": "23.50", "attr1": "Adult Female", "itemid": "EST-16" }, { "productid": "FL-DLH-02", "productname": "Persian", "unitcost": "12.00", "status": "P", "listprice": "89.50", "attr1": "Adult Male", "itemid": "EST-17" }, { "productid": "AV-CB-01", "productname": "Amazon Parrot", "unitcost": "92.00", "status": "P", "listprice": "63.50", "attr1": "Adult Male", "itemid": "EST-18" } ] }); function onClickCell(index, field) { if (editIndex != index) { if (endEditing()) { $('#dg').datagrid('selectRow', index) .datagrid('beginEdit', index); var ed = $('#dg').datagrid('getEditor', { index: index, field: field }); if (ed) { ($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus(); } editIndex = index; } else { setTimeout(function () { $('#dg').datagrid('selectRow', editIndex); }, 0); } } } var editIndex = undefined; function endEditing() { if (editIndex == undefined) { return true } if ($('#dg').datagrid('validateRow', editIndex)) { $('#dg').datagrid('endEdit', editIndex); editIndex = undefined; return true; } else { return false; } } function onEndEdit(index, row) { var ed = $(this).datagrid('getEditor', { index: index, field: 'productid' }); row.productname = $(ed.target).combobox('getText'); } </script> </body> </html> Thanks for advice! Title: Re: Loading combogrid columns in datagrid Post by: poeziafree on October 31, 2022, 04:56:03 AM Hello,
Please see the updated example: https://jsfiddle.net/6h2u9L4a/ Title: Re: Loading combogrid columns in datagrid onShowPanel event Post by: WizPS on November 05, 2022, 04:35:30 AM Regretfully this does not help me. I'm aware of this way to assign combogrid columns where I'm looking for a dynamic way using onShowPanel. Later I will put an AJAX call to the server getting the combogrid columns. Please provide an answer using onShowPanel as in my first example to set the columns.
Title: Re: Loading combogrid columns in datagrid Post by: poeziafree on November 06, 2022, 12:19:30 AM Hello,
Please check: https://jsfiddle.net/adx7t8m4/ |