myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Catherine Rocchio" <crocc...@gp-informatics.com>
Subject RE: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?
Date Thu, 28 Apr 2011 12:37:12 GMT
Hi there,

Thanks for writing back - both you and Sandeep.
First off - I do believe the partial trigger is being found - because if I use the notation
"triggername" - I get a warning that I am using deprecated syntax - (I am using Myfaces 2.0,
Trinidad 2.0) - but it is only a WARNING.  I also get "Trigger not found" if I use something
wrong like ::::triggername.  But.. I get no warnings with "::triggername" - but in all of
the combinations I have used, I haven't gotten the table to update.

My wprolelist is a vector - and is Session scoped I believe.

I have tried going after this programmatically - binding the table object (I THINK!).. and
having this code:

		public void addAction(ActionEvent event) {
	
			wprolelist.add(new RoleList("test person", "True",  "True", "True"));
			UIXTable table = getTable();

			RequestContext.getCurrentInstance().addPartialTarget(table);
			RequestContext.getCurrentInstance().partialUpdateNotify(table);
			FacesContext.getCurrentInstance().renderResponse();

					
		} 
		public void setTable(UIXTable table) { _table = table; }
		public UIXTable getTable() { return _table; }
		private UIXTable _table;
		        

But it hasn't worked either.  I can try the hack you mentioned Walter - and part of me wonders
if I somehow need to be updating a different layer?  I know that Trinidad tables use a model
- and maybe somehow I am just updating the raw data behind the model - but - to get a PPR/AJAX
type update - I have to poke the MODEL itself?  

Anyway.. I am still working on it.

Latest page snippet is this:

1.  TABLEDEF (I hope I am doing this binding right...)

<tr:table id="workplanroleprivs" rowSelection="single" value="#{createworkplan.wprolelist}"
var="row" width = "800"  
styleClass="order-table"
partialTriggers="addbutton"
binding="#{createworkplan.table}"
headerClass="order-table-header"
rowClasses="order-table-odd-row,order-table-even-row"

2.  Button to update Table (not part of table tag...)

<tr:commandButton text="Add" id="addbutton" partialSubmit="true" actionListener="#{createworkplan.addAction}"
 />

3.  Latest addAction is above... 


Status:  No errors that I can see - but still the add button does nothing :)... though when
I do a full page refresh, of course things are fine because my vector gets updated...

4.  Oh.. and I am using a session page - @SessionScoped in the beginning of the Java.

Thanks for any hints...I am willing to believe that the table needs to be nudged to update
programmatically, because the Trinidad documentation DOES say that if you are trying to do
a PPR update of a table row from any place OTHER than "that row" (i.e. not calling something
while IN that row) - you need to force the update programmatically.  BUT..  I would imagine
that this should work - people must have inline tables that need to get updated without a
full page update.

It must just be me!!!

THANKS!

Catherine

-----Original Message-----
From: Walter Mourão [mailto:walter.mourao@gmail.com] 
Sent: Thursday, April 28, 2011 7:02 AM
To: MyFaces Discussion
Subject: Re: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside
table does the adding of rows?

It should work but... I had some issues regarding the table updates.

What is the scope of 'wprolelist' ?

In some cases I had to use the following method to 'force' the update, since
the value attribute hasn't changed really changed (the list continues the
same).


    private void updateTableValue(RequestContext requestContext, UIComponent
viewRoot, String id, Object value)
    {
        UIComponent component =
ComponentUtils.findRelativeComponent(viewRoot, id);
        if(component instanceof UIXIterator)//just in case the view was
changed
        {
            ((UIXIterator) component).setValue(value);
        }
    }

But I think it is a hack... :-)

Cheers,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



On Tue, Apr 26, 2011 at 3:31 PM, Catherine Rocchio <crocchio@comcast.net>wrote:

> Hi there,
>
>
>
> I am trying to achieve a Partial Submit update of a Trinidad Table upon
> submit of a Command Button (called "Add Row").  The bean behind the table
> is
> definitely getting updated because when I do an overall page refresh, I see
> my new rows getting added - but I can't seem to get the table to refresh on
> its own with the partialTriggers on it.
>
>
>
> So.. I guess my question is - should something like this work?  Or.. do
> tables need to be programmatically poked for partial submits?  This seems
> pretty basic - but - it just isn't working for me.  I guess I will feel
> better if I know it SHOULD work - and I will keep trying.
>
>
>
> I am using Trinidad 2 and Myfaces 2.
>
>
>
> Sorry!!!!
>
>
>
> Thanks for help!
>
> Catherine
>
>
>
> <tr:commandButton text="Add" partialSubmit="true" id="test"
> actionListener="#{createworkplan.addAction}"  />
>
>
>
> My addAction is just boring - but adds a row to a vector which is behind
> the
> table.
>
>
>
>      public void addAction(ActionEvent event) {
>
>
>
>                  wprolelist.add(new RoleList("test person", "True",
> "True", "True"));
>
> }
>
>
>
> And my table has the specification of the partialTrigger.
>
> <tr:table id="workplanroleprivs" rowSelection="single"
> value="#{createworkplan.wprolelist}" var="row" width = "800"
>
> styleClass="order-table"
>
> partialTriggers="::test"
>
> headerClass="order-table-header"
>
> rowClasses="order-table-odd-row,order-table-even-row"
>
> >
>
>
>
>
>
>
>
>


Mime
View raw message