Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:inline_editing [2011/07/06 13:09] lorde Clarification of where succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc are described |
wiki:inline_editing [2017/12/12 17:19] (current) admin |
||
---|---|---|---|
Line 11: | Line 11: | ||
===== Software Requirement & Installation ===== | ===== Software Requirement & Installation ===== | ||
- | In order to use this functionality, make sure you put a check mark by the Inline Editing and Common modules when you downloaded jqGrid. For more information refer to [[Download]].\\ | + | In order to use this functionality, make sure you put a check mark by the Inline Editing and Common modules when you downloaded jqGrid. For more information refer to [[Download]].\\ |
Note to Developers - Source code can be found in the grid.inlinedit.js file, located in the src directory. | Note to Developers - Source code can be found in the grid.inlinedit.js file, located in the src directory. | ||
Line 18: | Line 18: | ||
===== Methods ===== | ===== Methods ===== | ||
- | For inline editing, we have three additional methods (of the Grid API) available: | + | For inline editing, we have five additional methods (of the Grid API) available: |
* editRow | * editRow | ||
* saveRow | * saveRow | ||
* restoreRow | * restoreRow | ||
+ | * addRow | ||
+ | * inlineNav | ||
These methods can be called, of course, only on an already-constructed grid, from a button click or from an event of the grid itself: | These methods can be called, of course, only on an already-constructed grid, from a button click or from an event of the grid itself: | ||
- | Exmaple: | + | Example: |
<code javascript> | <code javascript> | ||
Line 48: | Line 50: | ||
Calling conventions: | Calling conventions: | ||
<code javascript> | <code javascript> | ||
- | jQuery("#grid_id").editRow(rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); | + | jQuery("#grid_id").editRow(rowid, keys, oneditfunc, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); |
</code> | </code> | ||
or when we use the new API | or when we use the new API | ||
<code javascript> | <code javascript> | ||
- | jQuery("#grid_id").jqGrid('editRow',rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); | + | jQuery("#grid_id").jqGrid('editRow',rowid, keys, oneditfunc, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); |
</code> | </code> | ||
Line 66: | Line 68: | ||
<note tip>The row can not be edited if it has class 'not-editable-row' instead that in colModel some fields can have a property editable set to true. | <note tip>The row can not be edited if it has class 'not-editable-row' instead that in colModel some fields can have a property editable set to true. | ||
</note> | </note> | ||
- | |||
<note>When set in the editRow the parameter function oneditfunc should not be enclosed in quotes and not entered with () - show just the name of the function.</note> | <note>When set in the editRow the parameter function oneditfunc should not be enclosed in quotes and not entered with () - show just the name of the function.</note> | ||
- | If keys is true, then the remaining settings -- succesfunc, url, extraparam, aftersavefunc, errorfunc and afterrestorefunc - are passed as parameters to the saveRow method when the [Enter] key is pressed (saveRow does not need to be defined as jqGrid calls it automatically). For more information see saveRow method below. \\ \\ | + | <note important>As of version 4 of the jqGrid, parameters passed to the method can be enclosed in object see below</note> |
+ | |||
+ | Calling with object parameter: | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('editRow',rowid, | ||
+ | { | ||
+ | keys : true, | ||
+ | oneditfunc: function() { | ||
+ | alert ("edited"); | ||
+ | } | ||
+ | }); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | The default object parameter is as follow: | ||
+ | |||
+ | <code javascript> | ||
+ | editparameters = { | ||
+ | "keys" : false, | ||
+ | "oneditfunc" : null, | ||
+ | "successfunc" : null, | ||
+ | "url" : null, | ||
+ | "extraparam" : {}, | ||
+ | "aftersavefunc" : null, | ||
+ | "errorfunc": null, | ||
+ | "afterrestorefunc" : null, | ||
+ | "restoreAfterError" : true, | ||
+ | "mtype" : "POST" | ||
+ | } | ||
+ | |||
+ | jQuery("#grid_id").jqGrid('editRow',rowid, parameters); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | If keys is true, then the remaining settings -- successfunc, url, extraparam, aftersavefunc, errorfunc and afterrestorefunc - are passed as parameters to the saveRow method when the [Enter] key is pressed (saveRow does not need to be defined as jqGrid calls it automatically). For more information see saveRow method below. \\ \\ | ||
When this method is called on particular row, jqGrid reads the data for the editable fields and constructs the appropriate elements defined in edittype and editoptions | When this method is called on particular row, jqGrid reads the data for the editable fields and constructs the appropriate elements defined in edittype and editoptions | ||
Line 78: | Line 113: | ||
Calling convention: | Calling convention: | ||
<code javascript> | <code javascript> | ||
- | jQuery("#grid_id").saveRow(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); | + | jQuery("#grid_id").saveRow(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); |
</code> | </code> | ||
or when we use the new API | or when we use the new API | ||
<code javascript> | <code javascript> | ||
- | jQuery("#grid_id").jqGrid('saveRow',rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); | + | jQuery("#grid_id").jqGrid('saveRow',rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); |
+ | </code> | ||
+ | |||
+ | <note important>As of version 4 of the jqGrid, parameters passed to the method can be enclosed in object see below</note> | ||
+ | |||
+ | Calling with object parameter: | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('saveRow',rowid, | ||
+ | { | ||
+ | successfunc: function( response ) { | ||
+ | return true; | ||
+ | } | ||
+ | }); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | The default object parameter is as follow: | ||
+ | |||
+ | <code javascript> | ||
+ | saveparameters = { | ||
+ | "successfunc" : null, | ||
+ | "url" : null, | ||
+ | "extraparam" : {}, | ||
+ | "aftersavefunc" : null, | ||
+ | "errorfunc": null, | ||
+ | "afterrestorefunc" : null, | ||
+ | "restoreAfterError" : true, | ||
+ | "mtype" : "POST" | ||
+ | } | ||
+ | |||
+ | jQuery("#grid_id").jqGrid('saveRow',rowid, saveparameters); | ||
</code> | </code> | ||
Line 118: | Line 183: | ||
jQuery("#grid_id").jqGrid('saveRow',"rowid", false, 'clientArray'); | jQuery("#grid_id").jqGrid('saveRow',"rowid", false, 'clientArray'); | ||
</code> | </code> | ||
+ | |||
+ | Using the object parameter this should be written: | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('saveRow',"rowid", { url : 'clientArray' }); | ||
+ | </code> | ||
+ | |||
Additionally to this we have other two options which can be set in grid options. | Additionally to this we have other two options which can be set in grid options. | ||
Line 138: | Line 209: | ||
jQuery("#grid_id").jqGrid('restoreRow',rowid, afterrestorefunc); | jQuery("#grid_id").jqGrid('restoreRow',rowid, afterrestorefunc); | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | <note important>As of version 4 of the jqGrid, parameters passed to the method can be enclosed in object</note> | ||
+ | |||
+ | Calling with object parameter: | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('restoreRow',rowid, | ||
+ | { | ||
+ | "afterrestorefunc" : function( response ) { | ||
+ | // code here | ||
+ | } | ||
+ | }); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | The default object parameter is as follow: | ||
+ | |||
+ | <code javascript> | ||
+ | restoreparameters = { | ||
+ | "afterrestorefunc" : null | ||
+ | } | ||
+ | |||
+ | jQuery("#grid_id").jqGrid('restoreRow',rowid, restoreparameters); | ||
+ | </code> | ||
+ | |||
+ | |||
where | where | ||
* rowid is the row to restore | * rowid is the row to restore | ||
* afterrestorefunc if defined this function is called in after the row is restored. To this function we pas the rowid | * afterrestorefunc if defined this function is called in after the row is restored. To this function we pas the rowid | ||
+ | |||
+ | |||
+ | ==== addRow ==== | ||
+ | This method add a row for inline edit. | ||
+ | |||
+ | Calling convention: | ||
+ | |||
+ | <code javascript> | ||
+ | jQuery("#grid_id").addRow(rowid, parameters); | ||
+ | </code> | ||
+ | or when we use the new API | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('addRow',parameters); | ||
+ | </code> | ||
+ | |||
+ | where parameters is a object and has the following default values: | ||
+ | <code javascript> | ||
+ | parameters = | ||
+ | { | ||
+ | rowID : "new_row", | ||
+ | initdata : {}, | ||
+ | position :"first", | ||
+ | useDefValues : false, | ||
+ | useFormatter : false, | ||
+ | addRowParams : {extraparam:{}} | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Where | ||
+ | |||
+ | * rowID - (string) the value of the id of the new added row | ||
+ | * initdata - (object) the object of the pair name:value where the name correspond to the name in colMode. When set this is the initial value of the the cell. | ||
+ | * position - (string) determines the position of the new adde row in the grid. Default is first. Can have a value last to be added at the last position | ||
+ | * useDefValues - (boolean) if set to true uses the defaultValue property in editoptions of the colModel | ||
+ | * useFormatter : (boolean) if set to true synchronises the parameters from the formatter actions | ||
+ | * addRowParams : (object) parameters which are passed to the addRow - they are the same as of editRow | ||
+ | |||
+ | Actually this method uses two already constructed methods. When calling the method first executes the addRowData method which add a local row. | ||
+ | After this the method call editRow method to edit the row. If the keys parameter is set to true and the user press ESC key the row is automatically deleted. | ||
+ | |||
+ | ==== inlineNav ==== | ||
+ | Add a navigators buttons which correspond to the inline methods addRow, editRow, saveRow, restoreRow. In order to use this method a navGrid method should be called before to call this method | ||
+ | |||
+ | Calling convention: | ||
+ | |||
+ | <code javascript> | ||
+ | jQuery("#grid_id").navGrid(pagerid, {...}); | ||
+ | jQuery("#grid_id").inlineNav(pagerid, parameters); | ||
+ | </code> | ||
+ | or when we use the new API | ||
+ | <code javascript> | ||
+ | jQuery("#grid_id").jqGrid('navGrid',pagerid, {...}); | ||
+ | jQuery("#grid_id").jqGrid('inlineNav',pagerid, parameters); | ||
+ | </code> | ||
+ | |||
+ | Where parameters is a object with the following default values | ||
+ | <code javascript> | ||
+ | parameters = { | ||
+ | edit: true, | ||
+ | editicon: "ui-icon-pencil", | ||
+ | add: true, | ||
+ | addicon:"ui-icon-plus", | ||
+ | save: true, | ||
+ | saveicon:"ui-icon-disk", | ||
+ | cancel: true, | ||
+ | cancelicon:"ui-icon-cancel", | ||
+ | addParams : {useFormatter : false}, | ||
+ | editParams : {} | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ^Property^Type^Description^Default((English variant))^ | ||
+ | |add|boolean| Enables or disables the add action in the Navigator. When the button is clicked a addRow with parameters //addParams// is executed|true| | ||
+ | |addicon|string|Set a icon to be displayed if the add action is enabled. Note that currently only icons from UI theme images can be added|ui-icon-plus| | ||
+ | |addtext|string| The text than can be set in the add button|empty| | ||
+ | |addtitle|string|The title that appear when we mouse over to the add button (if enabled)| Add new row| | ||
+ | |edit|boolean| Enables or disables the edit action in the Navigator. When the button is clicked a editRow method is executed with //editParams// parameter the - current selected row|true| | ||
+ | |editicon|string|Set a icon to be displayed if the edit action is enabled. Note that currently only icons from UI theme images can be used|ui-icon-pencil| | ||
+ | |edittext|string| The text than can be set in the edit button|empty| | ||
+ | |edittitle|string|The title that appear when we mouse over to the edit button (if enabled)| Edit selected row| | ||
+ | |position|string|Determines the position of the Navigator buttons in the pager. Can be left, center and right. |left| | ||
+ | |save|boolean|Enables or disables the save button in the pager. When the button is clicked a saveRow method is executed with //editParams// parameters|true| | ||
+ | |saveicon|string|Set a icon to be displayed if the refresh action is enabled. Note that currently only icons from UI theme images can be used|ui-icon-disk| | ||
+ | |savetext|string| The text than can be set in the refresh button|empty| | ||
+ | |savetitle|string|The title that appear when we mouse over to the refresh button (if enabled)|Save row| | ||
+ | |cancel|boolean|Enables or disables the cancel(restore) button in the pager.When the button is clicked a restoreRow method is executed with parameters //editParams//|true| | ||
+ | |cancelicon|string|Set a icon to be displayed if the search action is enabled. Note that currently only icons from UI theme images can be used|ui-icon-cancel| | ||
+ | |canceltext|string| The text than can be set in the cancel button|empty| | ||
+ | |canceltitle|string|The title that appear when we mouse over to the search button (if enabled)|Cancel trow editiong| | ||
+ | |addParams|object|Parameters that can be passed to the addRow method in navigator. For detailed information see addRow parameters|{useFormatter : false}| | ||
+ | |editParams|object|Parameters that can be passed to the editRow, saveRow, restoreRow methods in navigator. For detailed information the related methods|{}| | ||
===== Notes ===== | ===== Notes ===== | ||
Line 175: | Line 363: | ||
{name:'name',index:'name', width:150,editable: true, editoptions:{size:"20",maxlength:"30"}}, | {name:'name',index:'name', width:150,editable: true, editoptions:{size:"20",maxlength:"30"}}, | ||
{name:'stock',index:'stock', width:60, editable: true, edittype:"checkbox",editoptions: {value:"Yes:No"}}, | {name:'stock',index:'stock', width:60, editable: true, edittype:"checkbox",editoptions: {value:"Yes:No"}}, | ||
- | {name:'ship',index:'ship', width:90, editable: true, edittype:"select", editoptions:{value:"FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX"}}, | + | {name:'ship',index:'ship', width:90, editable: true, edittype:"select",formatter:'select', editoptions:{value:"FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX"}}, |
{name:'note',index:'note', width:200, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"10"}} | {name:'note',index:'note', width:200, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"10"}} | ||
], | ], | ||
Line 189: | Line 377: | ||
}); | }); | ||
var mydata2 = [ | var mydata2 = [ | ||
- | {id:"12345",name:"Desktop Computer",note:"note",stock:"Yes",ship:"FedEx"}, | + | {id:"12345",name:"Desktop Computer",note:"note",stock:"Yes",ship:"FE"}, |
- | {id:"23456",name:"Laptop",note:"Long text ",stock:"Yes",ship:"InTime"}, | + | {id:"23456",name:"Laptop",note:"Long text ",stock:"Yes",ship:"IN"}, |
- | {id:"34567",name:"LCD Monitor",note:"note3",stock:"Yes",ship:"TNT"}, | + | {id:"34567",name:"LCD Monitor",note:"note3",stock:"Yes",ship:"TN"}, |
- | {id:"45678",name:"Speakers",note:"note",stock:"No",ship:"ARAMEX"}, | + | {id:"45678",name:"Speakers",note:"note",stock:"No",ship:"AR"}, |
- | {id:"56789",name:"Laser Printer",note:"note2",stock:"Yes",ship:"FedEx"}, | + | {id:"56789",name:"Laser Printer",note:"note2",stock:"Yes",ship:"FE"}, |
- | {id:"67890",name:"Play Station",note:"note3",stock:"No", ship:"FedEx"}, | + | {id:"67890",name:"Play Station",note:"note3",stock:"No", ship:"FE"}, |
- | {id:"76543",name:"Mobile Telephone",note:"note",stock:"Yes",ship:"ARAMEX"}, | + | {id:"76543",name:"Mobile Telephone",note:"note",stock:"Yes",ship:"AR"}, |
- | {id:"87654",name:"Server",note:"note2",stock:"Yes",ship:"TNT"}, | + | {id:"87654",name:"Server",note:"note2",stock:"Yes",ship:"TN"}, |
- | {id:"98765",name:"Matrix Printer",note:"note3",stock:"No", ship:"FedEx"} | + | {id:"98765",name:"Matrix Printer",note:"note3",stock:"No", ship:"FE"} |
]; | ]; | ||
for(var i=0;i<mydata2.length;i++) | for(var i=0;i<mydata2.length;i++) |