具体是这样解决的 function createValue(){ var selectValue = parseInt(document.getElementById("payMoneyCount").value); var table = document.getElementById("table1"); var cellslength = table.cells.length; if (selectValue >= table.rows.length-1) { for (var i = 0, len = selectValue - (table.rows.length-1); i < len; i++) { var node = document.getElementById("tr1").cloneNode(true); document.getElementById("tr1").parentNode.appendChild(node); } } else { for (var k=2, len=table.rows.length; k<=len-selectValue; k++) { table.deleteRow(); } } }
回调函数发一个 Ajax 后台查询, 结果传到前台显示
我愣是没弄明白,你列数也不固定? 还是只是行不固定?如果只是行不固定,你在文本框里面用blur 或者change事件 触发请示,把当前的值 传给你后台 绑定table 数据的方法,里面做分条数显示的逻辑就可以了啊如果你是行不固定以及列也不固定, 行一样的按照上面的方式取,至于 列就看你自己了想怎么显示什么列就显示什么列, 理论上说我是没遇到 过这样的需求,列的显示不会跟据行的变化而变化,最多根据权限有关系,来控制哪些列要显示和哪些列要隐藏。
如果你是.net 控件或者其它的 控件绑定的,应该就是循环 tr
例如
@foreach (var item in Model.GetGoodsList.InnerList)
{
<tr>
<td align="center">
@item.SKU
</td>
<td>@item.FullName>}
输入行列数<input type="text" id="cr" value=""/>
<input id="btn_ct" type="button" value="生成表格"/>
</body>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$("#btn_ct").click(function(){
var rows = $("#cr").val();
var columns = $("#cr").val();
var table = new Table( rows , columns );
table.clear();
table.create();
});
function Table( rows , columns ){
this.rows = rows;
this.columns = columns;
}
Table.prototype.clear = function(){
$("table").remove();
}
Table.prototype.create = function(){
var rows = this.rows,columns = this.columns;
var $t = $("<table border=1></table>");
for( var r = 1 ; r <= rows ; r++ ){//loop rows
var $tr = $("<tr></tr>");
for( var c = 1 ; c <= columns ; c++ ){//loop columns
$tr.append("<td> </td>");
}
$t.append( $tr );
}
$("#body").append( $t );
}
</script>
<form id="form" action="search.do" method="post">
<select id="row" name="row">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<table>
<c:forEach var="item" items="${list}">
<tr><td>...</td></tr>
</c:forEach>
</table>
</form>
$("#row").change(function() {
$("#form").submit();
});
后台根据获取到的frombean里的row,查询相应的行数显示
function createValue(){
var selectValue = parseInt(document.getElementById("payMoneyCount").value);
var table = document.getElementById("table1");
var cellslength = table.cells.length;
if (selectValue >= table.rows.length-1) {
for (var i = 0, len = selectValue - (table.rows.length-1); i < len; i++) {
var node = document.getElementById("tr1").cloneNode(true);
document.getElementById("tr1").parentNode.appendChild(node);
} } else {
for (var k=2, len=table.rows.length; k<=len-selectValue; k++) {
table.deleteRow();
}
}
}