我需要制作一个由 3 个部分组成的表格:
- “添加数字”部分
在这里我从键盘输入一些数字,它们应该具有某种特定的格式并排除重复。格式和重复的验证将通过 jquery 验证插件完成。 - “数字”部分
这部分是通过js动态填充的。如果“添加数字”部分中的数字有效,并且用户单击“添加”按钮,我们将带有数字的行添加到表格元素(标签和“删除”按钮)。它有最大大小 - 50 个数字(或行,因为 it'a<table>
) - 提交上的提交按钮
我们使回发是我不明白的事情-如何在服务器端处理带有数字的动态添加的标签
这是我为表单制作的草稿:
这是aspx布局:
<table>
<tr>
<td>
<table id="AddPanel">
<tr>
<th>AddNumber</th>
</tr>
<tr>
<td>
<asp:TextBox ID="txt1" runat="server" />
</td>
</tr>..... .....</table>
</td>
<td>
<asp:LinkButton ID="btnAdd" runat="server" OnClientClick="AddNumber();return false;">Add</asp:LinkButton>
</td>
<td>
<table id="numberList">
<tr>
<th>Numbers</th>
</tr>
</table>
</td>
</tr>
</table>
<asp:ImageButton ID="Submit" runat="server" onclick="btnSubmit_Click" />
这是js代码:
function AddNumber() {
$("#AddPanel input[type=text]")
.filter(function () {
return this.value.length !== 0;
})
.each(function () {
// find table and insert row
var table = document.getElementById('numberList');
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var lbl = document.createElement("label");
lbl.innerHTML = this.value;
cell1.appendChild(lbl);
var cell2 = row.insertCell(1);
var removeBtn = document.createElement("img");
removeBtn.src = "imgs/Buttons/delete.png";
removeBtn.title = "Remove";
removeBtn.name = "Remove";
removeBtn.onclick = function () {
Remove(this);
return false;
};
cell2.appendChild(removeBtn);
});
// clear all inputs
$('#AddPanel').find('input:text').val('');
}
function Remove(src) {
var oRow = src.parentElement.parentElement;
//once the row reference is obtained, delete it passing in its rowIndex
document.all("numberList").deleteRow(oRow.rowIndex);
}
我知道代码很难看。您对如何改进它的意见将不胜感激!