javascript - Setting a column value in an enhanced datagrid -


if have xpage datagrid on using rest service. in datagrid 2 records stored individual records in notes. user edits xpage , goes edit 1 of columns in data grid row.

there column a, column b , column c. column c calculated using script library "abc" 2 values on column , column b, create background notes document , displayed on datagrid.

as example, column = 12, column b = 24, column c calculated coming 397. column has change , recalculate using script library abc. in save changes button, give me example code showing how select changed row, set 2 variables column , column b, call script library "abc" , either update background notes document , redisplay datagrid or update datagrid , have update background notes document. column editable column.

here code

var rsstore = restserviceobj; var items = gridobj.selection.getselected();  dojo.foreach(items, function(selecteditem) {     if(selecteditem != null) {         viewscope.cola = rsentry.getcolumnvalue("a");         viewscope.colb = rsentry.getcolumnvalue("b");         var ans = abc();     } }); 

use datatable list documents.

calculate in property value notesdocuments want list.

add column editable field , b , c read fields datatable.

add onchange event column a's editable field:

  • calculate c based on , b function abc(a, b)
  • save document
  • refresh table

this way c gets calculated automatically whenever user changes value a.

<xp:panel id="paneltable">     <xp:datatable id="datatable1"         rows="100"         var="doc">         <xp:this.value><![cdata[#{javascript:             var documents = [];             var col = view1.getallentriesbykey("yourkey", true);             var entry = col.getfirstentry();             while (entry != null) {                 documents.push(entry.getdocument());                 entry = col.getnextentry(entry);             }             return documents;         }]]></xp:this.value>         <xp:column id="column1">             <xp:this.facets>                 <xp:span xp:key="header">a</xp:span>             </xp:this.facets>             <xp:inputtext id="inputtext1" value="#{doc.a}">                 <xp:eventhandler                     event="onchange"                     submit="true"                     refreshmode="partial"                     refreshid="paneltable">                     <xp:this.action><![cdata[#{javascript:                         var = doc.getitemvalue("a").get(0);                         var b = doc.getitemvalue("b").get(0);                         doc.replaceitemvalue("c", abc(a, b));                         doc.save();                         view1.refresh();                     }]]></xp:this.action>                 </xp:eventhandler>             </xp:inputtext>         </xp:column>         <xp:column id="column2">             <xp:this.facets>                 <xp:span xp:key="header">b</xp:span>             </xp:this.facets>             <xp:text id="computedfield3" value="#{doc.b}" />         </xp:column>         <xp:column id="column3">             <xp:this.facets>                 <xp:span xp:key="header">c</xp:span>             </xp:this.facets>             <xp:text id="computedfield2" value="#{doc.c}" />         </xp:column>     </xp:datatable> </xp:panel> 

Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -