myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen <ksk...@yahoo.com>
Subject Re: Issue with getting the values of the rows in dynamically generated Table
Date Mon, 12 Nov 2007 16:56:31 GMT

Simon,

I am sorry that my post would cause inconvenience. I have posted this
question in both of the Forums as I didn't get any reply for my prevoious
questions when in 'MyFaces - Users' Forum. I would delete the one which I
posted in 'MyFaces - Dev' Forum.

Actually I am working on Trinidad, Oracle JDeveloper.

As you assumed tempCoreTable is not a componentBinding from the page.  
I have two selectManyListBoxes.  The requirement is that I need to construct
a dynamic page as follows:

panelGrid1
  |
  |__panelGrid
  |      |
  |      |__checkBox      // checkBox ids will be stored in a static
List<CoreSelectBooleanCheckbox> 
  |      |__inputText     // These Components will be rendered dynamically
based on number of selected 
  |                            // values in first selectManyListbox
  |__panelGrid
  |     |
  |     |__table            // User will enter data in these tables.  On
selection of checkbox and  based 
  |                            // number of selected values in second
selectManyListbox, the number of rows will 
  |__panelGrid             // be rendered in the table
  |      |
  |      |__checkBox
  |      |__inputText
  |
  |__panelGrid
         |
         |__table           // User will enter data in these tables.  On
selection of checkbox and  based 
                               // number of selected values in second
selectManyListbox, the number of rows will 
                               // be rendered in the table

   -------
  |  save |         // Button
   -------


I am getting a reference (of table) tempCoreTable by the following code:

for(int totalCheckboxCount = 0; totalCheckboxCount < chkboxlist.size();
totalCheckboxCount++) {
      List panelGridChildren =
chkboxlist.get(totalCheckboxCount).getParent().getParent().getChildren();
      HtmlPanelGrid tempHtmlPanelGrid =
(HtmlPanelGrid)panelGridChildren.get(childCount);
      CoreTable tempCoreTable =
(CoreTable)tempHtmlPanelGrid.getChildren().get(0);

     // Code in my previous post goes here.
}

"getSelectedRowKeys" is a method in <tr:table> component.

Thanks
Glen



Simon Kitching-4 wrote:
> 
> Glen,
> 
> Please do not post these sorts of question to the dev list. It belongs on
> the user list. And definitely do not post to both lists; most developers
> are also subscribed to the user list. Posting to both just annoys the
> people you are hoping will help you.
> 
> In JSF, it is very rarely necessary to "fetch" data from the components. I
> presume that tempCoreTable is a componentBinding to the table component
> from the page. Using component bindings is ugly and should be used only
> when nothing else will work.
> 
> Usually the best solution for this sort of problem is to modify the
> objects that the table is rendering. So the table is no longer passed a
> list of ServiceBean objects, but instead a list of ServiceBeanHandler
> objects. The ServiceBeanHandler can then hold the logic that handles
> updates for each row rather than using the loop below. The tempCoreTable
> binding variable can then be deleted.
> 
> I don't know what this "getSelectedRowKeys" method is. There is no such
> method on a UIData object. Is this from Trinidad, or are you trying to
> write your own custom UIComponent or ???
> 
> In the past I have implemented tables where a column holds a checkbox for
> each row that the user can click to select a row. I guess this is what you
> are doing. In this case, the ServiceBeanHolder class can add a boolean
> property to hold the selected/unselected state of that particular row,
> with the checkbox component just mapping to that property.
> 
> Regards,
> 
> Simon
> 
> ---- Glen <kska20@yahoo.com> schrieb:
>> 
>> I have a problem with getting values of the inputText components from a
>> dynamically generated table.  Table will have inputText components in
>> each
>> cell.  The value entered by user should come to backing bean.
>> 
>> The following is the code that shows how I am trying to get the values:
>> 
>> 
>>             Iterator selectedRowKeys =
>> tempCoreTable.getSelectedRowKeys().iterator();
>>             while(selectedRowKeys.hasNext()) {
>>                 ServiceBean tableRow =
>> (ServiceBean)tempCoreTable.getRowData(Integer.parseInt(selectedRowKeys.next().toString()));
>>                 System.out.println("Weight :: " + tableRow.getWeight());
>>                 System.out.println("Minimum Value :: " +
>> tableRow.getMinValue());
>>                 System.out.println("Id :: " + tableRow.getDataID());
>>                 System.out.println("Name :: " + tableRow.getName());
>>             }
>> 
>> ServiceBean is a simple Java Bean that contains set of properties weight,
>> minValue, dataId, name and their get-set methods.  Also the rows in the
>> dynamically generated table are also of type ServiceBean.
>> Please help me to get out this problem.
>> -- 
>> View this message in context:
>> http://www.nabble.com/Issue-with-getting-the-values-of-the-rows-in-dynamically-generated-Table-tf4789818.html#a13702158
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Issue-with-getting-the-values-of-the-rows-in-dynamically-generated-Table-tf4789818.html#a13709347
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Mime
View raw message