【问题标题】:Javascript read data from rich:dataTable?Javascript 从rich:dataTable 读取数据?
【发布时间】:2011-05-22 14:51:34
【问题描述】:

我可以在表单初始化期间生成数据表。(JSF)。然后我想编写 javascript 来从 rich:dataTable 值中读取数据

<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>

帮帮我。 感谢您的努力。

【问题讨论】:

    标签: javascript jsf richdatatable


    【解决方案1】:

    首先从文档中获取表格(右键页面,查看源代码查看生成的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);
    }
    

    另见:

    【讨论】:

      【解决方案2】:
      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"); 
               }
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-06-10
        • 2016-04-29
        • 2018-01-25
        • 2021-02-13
        • 1970-01-01
        相关资源
        最近更新 更多