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

    输出结果为:

     

  • 相关阅读:
    WebApi集成Grpc客户端
    【Oracle】AWR报告生成
    ora-7445 导致 ora-600 ,oracle数据库 11gR2崩溃
    .NET的并发编程(TPL编程)是什么?
    打算写一些Netty的文章了,先聊聊为什么要学习Netty
    2020实战复盘:如何从0到1搭建数据传输平台产品DTS?
    DevOps,CI,CD,自动化简单介绍
    【python刷题】二叉树递归-非递归遍历-序列-反序列化
    python正则表达式-匹配用符号分割的多个字符串
    用 Flutter 搭建标签+导航框架
  • 原文地址:https://www.cnblogs.com/rentj1/p/1654867.html
Copyright © 2020-2023  润新知