If I strip the page down to only include the 2 buttons (no datatable
or any other components on the page), I get the same result.
Gregg
On 8/12/05, Gregg D Bolinger <[EMAIL PROTECTED]> wrote:
> The dataTable's data is fine. Why would that make a difference though?
>
> On 8/12/05, Mathias Broekelmann <[EMAIL PROTECTED]> wrote:
> > Is it possible that the returned list for the datatable contains no
> > values in the decode phase?
> >
> > Regards,
> > Mathias
> >
> > Gregg D Bolinger schrieb:
> > > As I stated in my first post, it doesn't matter if it is in request or
> > > session. I get the same results. saveState didn't solve the problem
> > > and rendered="#{categoryAdmin.updateMode}" does resolve to true after
> > > the Edit button is pressed. That was clear in my code I posted.
> > >
> > > Any other ideas?
> > >
> > > Gregg
> > >
> > > On 8/12/05, Mathias Broekelmann <[EMAIL PROTECTED]> wrote:
> > >
> > >>take a look at rendered="#{categoryAdmin.updateMode}" which must be true
> > >>to process the actionlistener when the request is decoded. Save the
> > >>state of categoryAdmin with t:savestate or make the bean session scope.
> > >>
> > >>Hope that helps.
> > >>
> > >>Regards,
> > >>Mathias
> > >>
> > >>Gregg D Bolinger schrieb:
> > >>
> > >>>FYI - the missing # from the actionListener in
> > >>>
> > >>><x:commandButton id="updateButton"
> > >>>actionListener="{categoryAdmin.update}" value="Update"
> > >>>rendered="#{categoryAdmin.updateMode}"/>
> > >>>
> > >>>was corrected as I was typing in a hurry. The problem still persists.
> > >>>Thanks for any help. And I am using MyFaces 1.0.9. Using the latest
> > >>>nightly snapshot did not resolve this issue either.
> > >>>
> > >>>Gregg
> > >>>
> > >>>On 8/11/05, Gregg D Bolinger <[EMAIL PROTECTED]> wrote:
> > >>>
> > >>>
> > >>>>I'm not sure if this is an issue with MyFaces or with how I am doing
> > >>>>what I am doing or what. I have a very simple page with a a
> > >>>>dataTable. I am wanting to edit the data in the dataTable inline.
> > >>>>That is to say, not navigating to a seperate page. I have it setup
> > >>>>with an edit button for each item and when that button is pressed I
> > >>>>render inputText components and an update button for the associated
> > >>>>row. This works.
> > >>>>
> > >>>>The problem is that the update button's actionListener method binding
> > >>>>isn't working. When I press the update button, nothing happens. The
> > >>>>update(ActionEvent event) method is never called. It doesn't matter
> > >>>>if the bean is in the session or request. It just doesn't call the
> > >>>>method. I have stripped the code down to the simplest working example
> > >>>>that demonstrates this problem which I will post below. As it is
> > >>>>right now, I am merely showing and hiding the update/edit buttons.
> > >>>>When I press Edit the edit method is being called and the update
> > >>>>button is rendered where the edit button is now not rendered. If I
> > >>>>hit update button, the update method is never called and the edit
> > >>>>button is displayed again, hiding the update button. I realize that
> > >>>>with each button press a new request is being sent to the server.
> > >>>>However, it JSF is supposed to save the state of the bean for
> > >>>>actionListeners since it does not navigate from the page. However, I
> > >>>>don't believe this is working correctly. Any ideas? Thanks.
> > >>>>
> > >>>><f:view>
> > >>>><html>
> > >>>> <head><title>Simple jsp page</title></head>
> > >>>> <body>
> > >>>> <jsp:include page="includes/admin_header.jsp"/>
> > >>>> <h:form>
> > >>>> <x:dataTable var="cat" binding="#{categoryAdmin.categoryData}"
> > >>>>value="#{categoryAdmin.categoryList}" border="1"
> > >>>>forceIdIndex="#{cat.categoryId}" >
> > >>>> <h:column>
> > >>>> <f:facet name="header">
> > >>>> <h:outputText value="Description" />
> > >>>> </f:facet>
> > >>>> <h:outputText value="#{cat.description}"/>
> > >>>> </h:column>
> > >>>> <h:column>
> > >>>> <f:facet name="header">
> > >>>> <h:outputText value="Cost"/>
> > >>>> </f:facet>
> > >>>> <h:outputText value="#{cat.cost}"/>
> > >>>>
> > >>>> </h:column>
> > >>>> <h:column>
> > >>>> <x:commandButton id="editButton"
> > >>>>actionListener="#{categoryAdmin.edit}" value="Edit" rendered="#{not
> > >>>>categoryAdmin.updateMode}" />
> > >>>> <x:commandButton id="updateButton"
> > >>>>actionListener="{categoryAdmin.update}" value="Update"
> > >>>>rendered="#{categoryAdmin.updateMode}"/>
> > >>>> </h:column>
> > >>>> <h:column>
> > >>>> <x:commandButton actionListener="#{categoryAdmin.delete}"
> > >>>>value="Delete"/>
> > >>>> </h:column>
> > >>>> </x:dataTable>
> > >>>> <f:verbatim><br/></f:verbatim>
> > >>>>
> > >>>> <h:panelGrid columns="2" border="1">
> > >>>> <h:outputText value="Description"/>
> > >>>> <h:inputText value="#{categoryAdmin.category.description}" />
> > >>>> <h:outputText value="Cost"/>
> > >>>> <h:inputText value="#{categoryAdmin.category.cost}"/>
> > >>>> <h:commandButton actionListener="#{categoryAdmin.add}"
> > >>>> value="Save"/>
> > >>>> <h:commandButton actionListener="#{categoryAdmin.cancel}"
> > >>>>value="Cance"/>
> > >>>> </h:panelGrid>
> > >>>>
> > >>>>
> > >>>> </h:form>
> > >>>> </body>
> > >>>></html>
> > >>>></f:view>
> > >>>>
> > >>>>public class CategoryAdmin extends BaseBean implements Serializable {
> > >>>>
> > >>>> private List categoryList;
> > >>>> private UIData categoryData;
> > >>>> private boolean updateMode = false;
> > >>>>
> > >>>> private Category category;
> > >>>>
> > >>>> public List getCategoryList() {
> > >>>> CategoryService catService =
> > >>>>(CategoryService)getAppContext().getBean("categoryService");
> > >>>> categoryList = catService.getall();
> > >>>> return categoryList;
> > >>>> }
> > >>>>
> > >>>> public void setCategoryList(List categoryList) {
> > >>>>
> > >>>> this.categoryList = categoryList;
> > >>>> }
> > >>>>
> > >>>> public UIData getCategoryData() {
> > >>>>
> > >>>>
> > >>>> return categoryData;
> > >>>> }
> > >>>>
> > >>>>
> > >>>>
> > >>>> public void setCategoryData(UIData categoryData) {
> > >>>> this.categoryData = categoryData;
> > >>>> }
> > >>>>
> > >>>> public boolean isUpdateMode() {
> > >>>> return updateMode;
> > >>>> }
> > >>>>
> > >>>> public void setUpdateMode(boolean updateMode) {
> > >>>> this.updateMode = updateMode;
> > >>>> }
> > >>>>
> > >>>> public Category getCategory() {
> > >>>> if (category == null){
> > >>>> category = new Category();
> > >>>> }
> > >>>> return category;
> > >>>> }
> > >>>>
> > >>>> public void setCategory(Category category) {
> > >>>> this.category = category;
> > >>>> }
> > >>>>
> > >>>> public void edit(ActionEvent event){
> > >>>> System.out.println("Edit");
> > >>>> category = (Category)categoryData.getRowData();
> > >>>> category.setEditable(true);
> > >>>> setUpdateMode(true);
> > >>>> }
> > >>>>
> > >>>> public void update(ActionEvent event){
> > >>>> System.out.println("Updating");
> > >>>> }
> > >>>>
> > >>>>
> > >>>>
> > >>>> public void delete(ActionEvent event){
> > >>>>
> > >>>>
> > >>>> CategoryService catService =
> > >>>>(CategoryService)getAppContext().getBean("categoryService");
> > >>>> Category cat = (Category)categoryData.getRowData();
> > >>>> catService.delete(cat);
> > >>>> setCategoryList(catService.getall());
> > >>>>
> > >>>>
> > >>>> }
> > >>>>
> > >>>> public void add(ActionEvent event){
> > >>>> System.out.println("Adding");
> > >>>>
> > >>>> CategoryService catService =
> > >>>>(CategoryService)getAppContext().getBean("categoryService");
> > >>>> catService.insert(getCategory());
> > >>>>
> > >>>> }
> > >>>>
> > >>>> public void cancel(ActionEvent event){
> > >>>>
> > >>>> }
> > >>>>
> > >>>> public void changeAddMode(ActionEvent event){
> > >>>> System.out.println("Changing Add Mode");
> > >>>>
> > >>>> }
> > >>>>}
> > >>>>
> > >>
> >
>