Hi guys,
i need your help for a question that i'm trying to solve from 10 days..
Excuse me if i've posted some similar question recently but now the
situation is clear..
i've created a datatable with t:datatable for input scope.
Each row is a form and a submit button at the end of row allows to user to
send row data to db.
This is my datatable
<t:dataTable
    value="#{biosamplesTable.biosamples}" 
    var="biosampleItem"
        binding="#{biosamplesTable.biosampleDataTable}" border="3" 
bgcolor="pink" >
    <h:column >
        <f:facet name="header">
            <h:outputText value="Organism" />
        </f:facet>
       <h:selectOneMenu value="#{biosampleItem.organism}">
        <f:selectItems value="#{getDropList.selectOrganism}"/>
           
       </h:selectOneMenu>
    </h:column>
    
    <h:column>
        <f:facet name="header">
            <h:outputText value="Treatment Protocol" />
        </f:facet>
        <h:inputText value="#{biosampleItem.treatmentProtocol}" />
    </h:column>

    <h:column >
        <f:facet name="header">
            <h:outputText value="Extraction Method" />
        </f:facet>
        <h:inputText value="#{biosampleItem.extractionMethod}" />
    </h:column>
    
            
     <h:column>
        <f:facet name="header">
            <h:outputText value="Actions" />
        </f:facet>
        
                
        
        <h:commandButton
        value="Invia dati biosample"
actionListener="#{biosamplesTable.editBiosample}" id="editBiosample">
    
        </h:commandButton>
    

    </h:column>
       
</t:dataTable>  

this is my bean
public class BiosamplesTable extends Visit {
        private List biosamples = new ArrayList();

                
        private HtmlDataTable biosampleDataTable;

        private Biosample biosampleItem;

        
        private int nrows;

        private int load = 0;
        private int load2 = 0;
        public HtmlDataTable getBiosampleDataTable() {
                return biosampleDataTable;
        }

        public void setBiosampleDataTable(HtmlDataTable biosampleDataTable) {
                
                this.biosampleDataTable = biosampleDataTable;
        }

        public Biosample getBiosampleItem() {
                return biosampleItem;
        }

        public void setBiosampleItem(Biosample biosampleItem) {
                this.biosampleItem = biosampleItem;
        }

        public List getBiosamples() throws Exception {
                loadBiosamples();
                // Reload after every request.

                return biosamples;
        }

        public void setBiosamples(List biosamples) {
                this.biosamples = biosamples;
        }

        public void loadBiosamples() throws Exception {

                if (load == 0) {

                        for (int i = 0; i < 3; i++) {
                                Biosample biosample = new Biosample();
                                biosamples.add(biosample);
                                setBiosamples(biosamples);
                                load = 1;
                        }
                } else {
                        setBiosamples(biosamples);
                }
        }

        public int getNrows() {
                return nrows;
        }

        public void setNrows(int nrows) {
                this.nrows = nrows;
        }

        public void editBiosample(ActionEvent event) throws SQLException {
                System.out.println("entrato");
                setBiosampleItem((Biosample) 
getBiosampleDataTable().getRowData());
                int id=getBiosampleDataTable().getRowIndex();
                System.out.println("L'indice della riga
è="+getBiosampleDataTable().getRowIndex());
                System.out.println("Il valore è
="+getBiosampleItem().getTreatmentProtocol());
                
                try {
                if (conn != null) {
                                Experiment exp = (Experiment) 
ViewUtils.eval("#{experiment}");
                                PreparedStatement pst3 = null;
                                pst3 = conn
                                                .prepareStatement("INSERT INTO 
campione(id_,organismo,protocollotrattamento,metodoestrazione)  
VALUES(?,?,?,?)");

                                pst3.setInt(1, exp.getAutoKey());
                                pst3.setString(2, 
getBiosampleItem().getOrganism());
                                pst3.setString(3, 
getBiosampleItem().getTreatmentProtocol());
                                pst3.setString(4, 
getBiosampleItem().getExtractionMethod());
                                
                                pst3.executeUpdate();
                        
                                pst3.close();
                        } 

                } 
                catch (Exception p) {
                        p.printStackTrace();
                }

        }

        
}

It works fine and i can insert a row of data correctly.
My question is:
I want solving this situation.One user enters a value in a precedent page(2
for example) and my application adds 2 columns to my existing datatable,for
allowing to user to insert others 2 values for row....
I've read all posts,all article and comments,but excuse me,i HAVEN'T
UNDERSTOOD!!!!!
Can someone help me,please?
I'm crazying and without you i've to renounce...
i want to know how add 2 columns and how retrieve their values for each
row....please help me with code,i'm new of jsf and myfaces...
i hope you help me..

-- 
View this message in context: 
http://www.nabble.com/Add-dynamic-part-to-existing-datatable...-tf2300392.html#a6392855
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to