• 用JS写的一个TableView控件


    请看看编码是否规范,使用是否方便

    HTML:

    代码
    <table id="customTableView">
      
    <thead>
        
    <tr>
          
    <td>编号</td>
          
    <td>姓名</td>
        
    </tr>
      
    </thead>
      
    <tbody><!--template-tbody-->
        
    <tr name="" style=" display:none"><!--template-tr-->
          
    <td bind="0"><span class="red">{value}</span></td>
          
    <td bind="1"><strong>{value}</strong></td>
        
    </tr>
      
    </tbody>
    </table>
    <hr />
    <table id="productTableView">
      
    <thead>
        
    <tr>
          
    <td>编号</td>
          
    <td>名称</td>
        
    </tr>
      
    </thead>
      
    <tbody>
        
    <tr style=" display:none">
          
    <td bind="0"><span class="red">{value}</span></td>
          
    <td bind="1"><strong>{value}</strong></td>
        
    </tr>
      
    </tbody>
    </table>

    Javascript:

    代码
    <script type="text/javascript"> 
    //class TableView {
        //构造函数
        function TableView(ID){
            
    var htmlTable = document.getElementById(ID);
            
    this.container = htmlTable.getElementsByTagName("tbody")[0];
            
    this.template = this.container.getElementsByTagName("tr")[0];
        }
        
    //成员方法
        TableView.prototype.bind = function(dataSource) {
            
    var template = this.template;
            
    var container = this.container;
            
    for(var k=0; k<dataSource.length; k++) {
                
    var newRow = template.cloneNode(true);
                newRow.removeAttribute(
    "id");
                newRow.removeAttribute(
    "style");
                
    for(var i=0;i<2;i++) {
                    
    var dataItem = newRow.cells[i];
                    dataItem.innerHTML 
    = dataItem.innerHTML.replace("{value}", dataSource[k][dataItem.getAttribute("bind")]);
                }
                container.appendChild(newRow);    
            }
        }
    //}

    //测试-1
    var productDataSource = [["001","产品名称1"],["002","产品名称2"]];
    var productTableView = new TableView("productTableView");
    productTableView.bind(productDataSource);

    //测试-2
    var customDataSource = [["001","客户姓名1"],["002","客户姓名2"]];
    var customTableView = new TableView("customTableView");
    customTableView.bind(customDataSource);
    </script>

    输出结果为:

     

  • 相关阅读:
    comparator接口与Comparable接口的区别
    heap和stack有什么区别
    聚集索引和非聚集索引(整理)
    SQL里的EXISTS与in、not exists与not in
    SQL中CONVERT转化函数的用法
    GCC 对C语言的扩展
    C++宏定义详解
    How to Find Processlist Thread id in gdb !!!!!GDB 使用
    Netdata----Linux 性能实时监测工具
    java开发C语言编译器
  • 原文地址:https://www.cnblogs.com/rentj1/p/1654867.html
Copyright © 2020-2023  润新知