Loading ...
Sorry, an error occurred while loading the content.

Re: [ydn-javascript] Database InLine editing Affecting Values ofother columns in Row

Expand Messages
  • daisyhmazie@yahoo.com
    Thanks so much! I ll try this D Sent via BlackBerry from T-Mobile ... From: Satyam Date: Sat, 04 Oct 2008 10:25:49 To:
    Message 1 of 9 , Oct 4, 2008
    • 0 Attachment
      Thanks so much! I'll try this
      D

      Sent via BlackBerry from T-Mobile


      From: Satyam <satyam@...>
      Date: Sat, 04 Oct 2008 10:25:49 +0200
      To: <ydn-javascript@yahoogroups.com>
      Subject: Re: [ydn-javascript] Database InLine editing Affecting Values of other columns in Row

      I'm not sure how the code below is related to your issue, they are bits
      and pieces from some examples of mine (which you are not using) plus
      some code of your own.

      Method refreshRow does not work any longer as it is. That piece of code
      has not worked since 2.5. Anyway, you are not using it.

      You are defining a static formatCell function as part of the basic
      DataTable itself. It won't collide with the formatCell method but there
      is no point in storing it there, it may turn confusing to have an
      instance method and a static method with the same name and different
      functionality on the same object.

      I did say that in response to editorSaveEvent you could call
      formatCell. I meant "eventually call formatCell", the original one not
      one you make and not directly, the arguments don't match, they are not
      related and by calling your own function formatCell, things don't get
      improved at all, they just confuse things.

      This one works, and I've put two options there (and provided the fixed
      refreshRow):

      (function () {
      var loader = new YAHOO.util.YUILoade r();
      loader.loadOptional = true;
      loader.require( "reset-fonts- grids","base" ,"datatable" ,"dragdrop" ,"selector" );
      loader.insert( {
      onSuccess: function() {
      //shortcuts
      var $C = YAHOO.util.Connect,
      $E = YAHOO.util.Event,
      $D = YAHOO.util.Dom,
      $L = YAHOO.lang,
      $ = $D.get,
      $DT = YAHOO.widget. DataTable;
      $DT.prototype. refreshRow = function(row) {
      var $D = YAHOO.util.Dom;
      $D.batch($D. getChildren( this.getTrEl( row)),
      function(el) {
      this.formatCell( el.firstChild) ;
      },this,true
      );
      };
      var myFormatter = function(elCell, oRecord, oColumn){
      alert("FORMAT CELL:" + oRecord.getData( "firstNum" ));
      elCell.innerHTML = (oRecord.getData( "firstNum" ) +5);
      alert(elCell. innerHTML)
      };

      var dtSSN = new $DT(
      'theContainer' ,
      [{
      key:'firstNum' ,
      formatter:$DT. formatNumber,
      editor:"textbox"
      },
      {key:'secondNum' ,formatter: myFormatter}
      ],new YAHOO.util.DataSour ce(
      [{firstNum:12} ],
      {
      responseType: YAHOO.util. DataSource. TYPE_JSARRAY,
      responseSchema: {fields:['firstNum' ]}
      })
      );

      dtSSN.subscribe( 'cellClickEvent' , dtSSN.onEventShowCe llEditor) ;
      dtSSN.subscribe( 'editorSaveEvent ',function( oArgs) {
      // either:
      this.refreshRow( oArgs.editor. getTdEl() );
      // or:
      this.formatCell( oArgs.editor. getTdEl() .nextSibling. firstChild) ;
      });
      }
      });
      })();

      Notice you have to choose one of the above, the second is the fastest
      since it refreshes just one cell though it relies on on cell being the
      nextSibling of the other, if you change the table layout, you will have
      to get the cell somehow.

      Satyam

      Donna Lanasa wrote:

      > hmm that was one of the things I tried but I must be doing something
      > wrong because the
      > alerts I have in the formatCell function get called when I first load
      > the page but then after I edit
      > the firtNum field, the formatCell function doesnt get called
      > again because the value of the second field doesnt change and the
      > alerts are never triggered.
      >
      > What am I doing wrong?
      > TIA
      >
      > (function () {
      > var loader = new YAHOO.util.YUILoade r();
      > loader.loadOptional = true;
      >
      > loader.require( "reset-fonts- grids","base" ,"datatable" ,"dragdrop" ,"selector" );
      > loader.insert( {
      > onSuccess: function() {
      > //shortcuts
      > var $C = YAHOO.util.Connect,
      > $E = YAHOO.util.Event,
      > $D = YAHOO.util.Dom,
      > $L = YAHOO.lang,
      > $ = $D.get,
      > $DT = YAHOO.widget. DataTable;
      > $DT.prototype. refreshRow = function(row) {
      > var $D = YAHOO.util.Dom;
      >
      > $D.batch($D. getChildren( this.getTrEl( row)),this. formatCell, this,true) ;};
      >
      > $DT.formatCell = function(elCell, oRecord, oColumn){
      > alert("FORMAT CELL:" + oRecord.getData( "firstNum" ));
      > elCell.innerHTML = (oRecord.getData( "firstNum" ) +5);
      > alert(elCell. innerHTML)
      > }
      >
      >
      > // This is just for the sample SSN example described below.
      > var dtSSN = new $DT(
      > 'theContainer' ,
      > [{
      > key:'firstNum' ,
      > formatter:$DT. formatNumber,
      > editor:"textbox"
      > },
      > {key:'secondNum' ,formatter: $DT.formatCell}
      >
      > ],new YAHOO.util.DataSour ce(
      > [{firstNum:12} ],
      > {
      > responseType: YAHOO.util. DataSource. TYPE_JSARRAY,
      > responseSchema: {fields:['firstNum' ]}
      > })
      > );
      >
      > dtSSN.subscribe( 'cellClickEvent' ,
      > dtSSN.onEventShowCe llEditor) ;
      > dtSSN.subscribe( 'editorSaveEvent ',$DT.formatCell )
      >
      > }
      > });
      > })();
      >
      > From: Satyam <satyam@satyam. com.ar>
      > To: ydn-javascript@ yahoogroups. com
      > Sent: Friday, October 3, 2008 8:19:31 AM
      > Subject: Re: [ydn-javascript] Database InLine editing Affecting Values
      > of other columns in Row
      >
      > You don't. The formatter function does the calculation just as the
      > first time. When you call formatCell, it will eventually call your
      > formatter function which picks the values of the other fields in the
      > record and does the calculation once again.
      >
      > Satyam
      >
      > Donna Lanasa wrote:
      > > ok this is a really stupid question, but when I call formatCell, how
      > > do I specifically
      > > assign the new value to the calculated Column?
      > >
      > > ----- Original Message ----
      > > From: Satyam <satyam@satyam. com.ar <mailto:satyam% 40satyam. com.ar>>
      > > To: ydn-javascript@ yahoogroups. com
      > <mailto:ydn- javascript% 40yahoogroups. com>
      > > Sent: Thursday, October 2, 2008 2:37:49 PM
      > > Subject: Re: [ydn-javascript] Database InLine editing Affecting Values
      > > of other columns in Row
      > >
      > > The value would never be stored, it would only be displayed. By
      > > assigning a formatter, you would get the cell in the table filled with a
      > > calculated value, but it would not get stored elsewhere, it doesn't need
      > > to, anyway. In editorSaveEvent just call formatCell on the cell with
      > > the calculated value, that would force a recalculation of that cell
      > > based on the values of the other fields in the record, just as the first
      > > time around.
      > >
      > > Satyam
      > >
      > > Donna Lanasa wrote:
      > > > ok, so I have the field computing on the first render of the table,
      > > > but after I text edit another column in that row and call
      > > editorSaveEvent,
      > > > I can access the values for all the columns except the one that was
      > > > computed.
      > > > I get 'undefined'. It seems like tha value is not being saved...
      > > > What am I doing wrong?
      > > >
      > > > Thx
      > > > D
      > > > ----- Original Message ----
      > > > From: Satyam <satyam@satyam. com.ar <http://com.ar>
      > <mailto:satyam% 40satyam. com.ar>>
      > > > To: ydn-javascript@ yahoogroups. com
      > > <mailto:ydn- javascript% 40yahoogroups. com>
      > > > Sent: Wednesday, October 1, 2008 11:21:14 PM
      > > > Subject: Re: [ydn-javascript] Database InLine editing Affecting Values
      > > > of other columns in Row
      > > >
      > > > You can list columns in the column defs array that don't exist in the
      > > > responseSchema. fields array. Those columns need to have a formatter
      > > > function defined because otherwise they would be empty.
      > > >
      > > > http://developer. yahoo.com/ <http://yahoo. com/> <http://yahoo.
      > com/ <http://yahoo. com/>> yui/datatable/ #format
      > > > <http://developer. yahoo.com/ yui/datatable/ #format
      > > <http://developer. yahoo.com/ yui/datatable/ #format
      > <http://developer. yahoo.com/ yui/datatable/ #format>>>
      > > >
      > > > The formatter function has access to all values in the record and can
      > > > calculate the value for this extra column based on them.
      > > >
      > > > At anytime you want to refresh the value on that column, you can call
      > > > formatCell:
      > > >
      > > > http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > > > html#method_ formatCell
      > > > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > > html#method_ formatCell
      > > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > html#method_ formatCell
      > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable. html#method_ formatCell>>>
      > > >
      > > > for example, in response to editorSaveEvent:
      > > >
      > > > http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > > > html#event_ editorSaveEvent
      > > > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > > html#event_ editorSaveEvent
      > > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable.
      > html#event_ editorSaveEvent
      > <http://developer. yahoo.com/ yui/docs/ YAHOO.widget. DataTable. html#event_ editorSaveEvent>>>
      > > >
      > > > Satyam
      > > >
      > > > daisyhmazie wrote:
      > > > > Hi!
      > > > > Im new using YUI and very rusty with my javascript. Im having
      > trouble
      > > > > figure out how to firstly have a column that's calculated from the
      > > > > values of another column in the record. And secondly, when a column
      > > > > is edited, have the calculated column change it's value based on the
      > > > > new value entered.
      > > > > TIA!
      > > > > D
      > > > >
      > > > >
      > > > > ------------ --------- --------- ------
      > > > >
      > > > > Yahoo! Groups Links
      > > > >
      > > > >
      > > > >
      > > > > ------------ --------- --------- --------- --------- --------- -
      > > > >
      > > > >
      > > > > No virus found in this incoming message.
      > > > > Checked by AVG - http://www.avg. com <http://www.avg. com
      > > <http://www.avg. com <http://www.avg. com>>>
      > > > > Version: 8.0.169 / Virus Database: 270.7.5/1702 - Release Date:
      > > > 01/10/2008 9:05
      > > > >
      > > > >
      > > >
      > > >
      > > >
      > > > ------------ --------- --------- --------- --------- --------- -
      > > >
      > > >
      > > > No virus found in this incoming message.
      > > > Checked by AVG - http://www.avg. com <http://www.avg. com
      > <http://www.avg. com>>
      > > > Version: 8.0.173 / Virus Database: 270.7.5/1703 - Release Date:
      > > 02/10/2008 7:46
      > > >
      > > >
      > >
      > >
      > >
      > > ------------ --------- --------- --------- --------- --------- -
      > >
      > >
      > > No virus found in this incoming message.
      > > Checked by AVG - http://www.avg. com <http://www.avg. com>
      > > Version: 8.0.173 / Virus Database: 270.7.5/1703 - Release Date:
      > 02/10/2008 7:46
      > >
      > >
      >
      >
      >
      > ------------ --------- --------- --------- --------- --------- -
      >
      >
      > No virus found in this incoming message.
      > Checked by AVG - http://www.avg. com
      > Version: 8.0.173 / Virus Database: 270.7.5/1703 - Release Date: 02/10/2008 7:46
      >
      >

    Your message has been successfully submitted and would be delivered to recipients shortly.