Hi!
I don't know whether this would help u, but this is what i do:
- Set immediate=true for both inputs in table and action
- When action executes, call first table.processUpdates, where table is the
UIData bound to table. This would copy submitted values into model.
Hope this helps.
----- Original Message -----
From: "Andrew Robinson" <[EMAIL PROTECTED]>
To: "MyFaces Discussion" <[email protected]>
Sent: Friday, June 30, 2006 6:40 PM
Subject: Understanding phases and UIInput inside of UIData
I had thought I had my problem of phases with UIData figured out, but I am
still having issues.
I have a data table with input controls in it (inputText for example).
Sometimes I lose data in these controls. Here are the use cases and the
associated issue:
1. If action immediate set to true, I lose all my data in the data
tables
2. If immediate is false my action never fires if a validation error
occurs (this is not what I want in this use case, I want my action to
ALWAYS
fire)
3. If I change the phase ID of the action to the validations phase,
and there are validation errors, everything works
4. If I chagne the phase ID of the action to the validations phase and
there are no validation errors, I lose my data in the table
What I am trying to figure out is the difference between #3 and #4.
So, I have changed my action to execute during the processing of
validations. This allows me to run my code regardless of validation
errors.
The side effect is if there are no validation errors, I still lose my
data.
Why would all my submitted values re-render in the data table when there
are
validation errors, but not when there are not (I am skipping update model,
so in either case it never fires)?
I can't see any difference in the code except that with validation errors
there is at least one UI component marked as not being valid, but that
doesn't seem like it should cause a behavior change with all components on
the whole page. If it does how does that work (I couldn't see any such
behavior in the code)?
I really need to get this sorted out, so if someone could shed some light
on
how UIData manages to have its child components render submitted values or
not I'd really appreciate it.
Thanks,
Andrew