jQWidgets Forums
jQuery UI Widgets › Forums › Grid › Issue with Grid and modal window
This topic contains 1 reply, has 2 voices, and was last updated by Dimitar 12 years, 6 months ago.
-
Author
-
Hi Team,
I have a grid which is editable. If the text in a cell is large, on double click of the cell, I am opening a modal window to facilitate the user to update long text. But until the mouse is operated the focus is still with the grid so on typing text, the cell value in the grid is updating instead of updating the text in modal window.So, is there a possibility to set the focus to newly opened modal window just after it opens?
Thanks in advance,
Sushma.Hello Sushma,
Here is an example on how to set the focus on the window.
<!DOCTYPE html><html lang="en"><head> <title id='Description'>This example shows how to create a Grid from Array data. </title> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../scripts/jquery-1.7.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/jqxgrid.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="../jqwidgets/jqxgrid.edit.js"></script> <script type="text/javascript" src="../jqwidgets/jqxwindow.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" ]; for (var i = 0; i < 100; 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["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; } var source = { localdata: data, datatype: "array" }; var dataAdapter = new $.jqx.dataAdapter(source, { loadComplete: function (data) { } }); $("#jqxgrid").jqxGrid( { width: 670, source: dataAdapter, selectionmode: 'singlecell', editable: true, editmode: 'dblclick', columns: [ { 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: 80, cellsalign: 'right' }, { text: 'Unit Price', datafield: 'price', width: 90, cellsalign: 'right', cellsformat: 'c2' }, { text: 'Total', datafield: 'total', width: 100, cellsalign: 'right', cellsformat: 'c2' } ] }); $("#jqxwindow").jqxWindow({ height: 90, width: 200, theme: 'classic', isModal: true, autoOpen: false }); $("#jqxgrid").bind("celldoubleclick", function (event) { var column = event.args.column; var rowindex = event.args.rowindex; var cellvalue = $('#jqxgrid').jqxGrid('getcellvalue', rowindex, column.datafield); if (cellvalue.length > 5) { $("#jqxwindow").jqxWindow('open'); setTimeout(function () { $("#inputField").focus(); }, 100); }; }); }); </script></head><body class='default'> <div id='jqxWidget' style="font-size: 13px; font-family: Verdana; float: left;"> <div id="jqxgrid"> </div> <div id="jqxwindow"> <div> Header</div> <div id='content'> <input id='inputField' type="text" /></div> </div> </div></body></html>
We also recommend using the latest version of jqWidgets.
Best Regards,
DimitarjqWidgets team
http://www.jqwidgets.com/ -
AuthorPosts
You must be logged in to reply to this topic.