如何使用JavaScript或jQuery将动态生成的表转换为DataTable?

时间:2013-12-03 09:18:14

标签: javascript jquery html jquery-datatables

我所做的是创建动态HTML表格。现在我想将此表格转换为jQuery DataTables

有没有可能的方法呢?

在这里,我附上了动态HTML table

<html>
<body>
<script type="text/javascript" charset="utf-8" src="/DataTables/media/js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="/DataTables/media/js/jquery.dataTables.js"></script>
        <table >
            <tr>
                <td>Enter Rows</td>
                <td><input type="number" id="txtRows"/></td>
            </tr>
            <tr>
                <td>Enter Columns</td>
                <td><input type="number" id="txtCols"/></td>
            </tr>
            <tr>
                <td colspan="2"><input type="button" id="btnDisplay" value="Display" onClick="ShowTable();"/></td>
            </tr>
        </table>
        <table id="tbl_DynamicTable" border="1" style="display:none">
        </table>
    </body>

<script type="text/JavaScript">

        function ShowTable()
        {
        debugger;
            document.getElementById("tbl_DynamicTable").style.display = "";
            createTable();
        }

        function createTable()
            {
            debugger;
                var rows = document.getElementById("txtRows").value;
                var cols = document.getElementById("txtCols").value;
                var table = document.getElementById("tbl_DynamicTable");
                var str="";

                var randomColor; 
                for(var i=0;i<rows;i++)
                {
                    randomColor = '#'+Math.floor(Math.random()*16777215).toString(16);
                    str += "<tr id=row" + i +" bgcolor="+randomColor+">";

                    for(var j=0;j<cols;j++)
                    {
                        if(i==0)
                        {
                            str += "<th> Header " + j + "</th>";
                        }
                        else
                        {
                            str += "<td> Row " + i + ", Cell "+ j + "</td>";
                        }
                    }
                    str += "</tr>";
                }
                table.innerHTML = str;
            }
    </script>

</html>

现在我该如何将此表转换为jQuery的DataTable?

2 个答案:

答案 0 :(得分:1)

试试此示例:

在您声明otable的功能之外。

var oTable;

创建html表后的函数内部:

 if(oTable.length>0)
       oTable.fnDestroy();


    oTable=$("tableid").dataTable({
                    "sDom": '<"top"i>rt<"bottom"flp><"clear">',
                    "sScrollY":500,
                    "bScrollCollapse": true,
                    "bPaginate": true,
                    "bFilter": true,
                    "bSort": true,
                    "bInfo": false,
                    "bSortClasses": false
                });

答案 1 :(得分:0)

在添加每个动态行时将其推送到数组中,它将存储详细信息,之后您可以发送到数据库