1

フォームの初期化中にデータテーブルを生成できます。(JSF)。次に、rich:dataTable値からデータを読み取るためのJavaScriptを記述します

<f:view>
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

      <script type="text/javascript">
            function getTableValue()
            {
                //Here i want to write code for get one by one value  
                //from rich:datatable content
            }
      </script>

    </head>
    <body>
      <h:form id="tableForm" binding="#{DataTable.initForm}">

        <rich:dataTable id="salesTable" value="#{DataTable.saleList}" var="data">
          <f:facet name="header">
            <rich:columnGroup>
              <rich:column>
                <h:outputText value="Sales" />
              </rich:column>
            </rich:columnGroup>
          </f:facet>
          <rich:column>
            <h:outputText value="#{data.salesPercentage}" />
          </rich:column>
        </rich:dataTable>

        <input id="tableButton" type="button" value="getDataTableValue" onclick="getTableValue()" />

      </h:form>
    </body>
  </html>
</f:view>

助けて。がんばってくれてありがとう。

4

2 に答える 2

2

まず、ドキュメントからテーブルを取得します(ページを右クリックし、[ソースの表示]を実行して、自分で生成されたものを確認しidます)。

var table = document.getElementById('tableForm:salesTable');

次に、テーブル本体から配列として行を取得します。

var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");

次に、行をループして、行からセルを配列として取得します。

for (var i = 0; i < rows.length; i++) {
    var cells = rows[i].getElementsByTagName("td");
}

次に、セルをループしてコンテンツを取得します。

for (var j = 0; j < cells.length; j++) {
    var cell = .cells[j];
    alert(cell.innerHTML);
}

参照:

于 2010-12-09T03:39:42.703 に答える
1
function processDelete()
{
   var table = document.getElementById('AluminumPricingTab:forecastYearList');     var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); var yearAdd = "";
    for (var i = 0; i < rows.length; i++) {
        //alert("rows:" + i);       var cells = rows[i].getElementsByTagName("td");     var checked = document.getElementById("AluminumPricingTab:forecastYearList:"+i+":deleteSelectedRowCHK").checked;
        //alert("checked:" +checked); 
        if (checked)
        {              
             if(yearAdd != "")
                {
                yearAdd = yearAdd + ',' ;
                }
            else
                {
                  yearAdd;
                }
            var year = document.getElementById("AluminumPricingTab:forecastYearList:"+i+":year").value; 
            yearAdd = yearAdd + year;

            //alert("yearAdd:" +yearAdd);  
        }       
    }
     if (yearAdd != "")
         {
            var result = confirm(MSG_FORECASTS_DELETE_SELECTED +'\n\n'+ yearAdd);
            if (result == true)
            {   
                //alert("Row deleted"); 
                var bt1 = document.getElementById('AluminumPricingTab:deleteSelectedForecast');
                bt1.onclick='document.body.style.cursor = "wait";return true;';
                bt1.click();
            }   
            else 
            {
                return false;   
            }
         }
     else
         {
           alert("Select Row to deleted"); 
         }
  }
于 2014-09-24T18:10:37.150 に答える