【发布时间】:2012-02-02 17:07:58
【问题描述】:
我正在构建一个从存储过程动态填充的 Web 表单。它是一个带有下拉列表、一个文本框和一个标签的表格。我可以成功地从下拉列表和文本框中抓取数据,但我无法从标签中抓取数据。这是填充表格数据部分的代码。
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><select name='select_" + count + "'><option value='Pending'>Pending</option><option value='Approve'>Approve</option><option value='Deny'>Deny</option></select></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><input type='text' name='comments_" + count + "' /></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + locationNum + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + shipToNum + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + address + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + city + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + state + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + zip + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + soldToName + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + exemptionDescription + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><label for='select_" + count + "' name='label_" + count + "'>" + exemptionRequestDetailID + "<label></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + reason + "</td>");
这是从 aspx 页面中的表中获取所需数据并将其发送到代码隐藏以进行操作的代码。
function SendForm() {
var count = 0;
var elLength = form1.elements.length;
for (i = 0; i < elLength; i++) {
var type = form1.elements[i].type;
alert(type);
if ((type == "select-one") && (form1.elements[i].value != "Pending")) {
count++
}
}
var data = new Array(count);
var text = new Array(count);
var exempID = new Array(count);
for (i = 0; i < elLength; i++) {
var type = form1.elements[i].type;
if ((type == "select-one") && (form1.elements[i].value != "Pending")) {
data[i] = form1.elements[i].value;
}
if ((type == "text") && ((form1.elements[i-1].value == "Approve") || (form1.elements[i-1].value == "Deny"))) {
text[i] = form1.elements[i].value;
}
if ((type == "label") && ((form1.elements[i-2].value == "Approve") || (form1.elements[i-2].value == "Deny"))) {
alert(form1.elements[i].value);
}
}
PageMethods.SendForm(data, text, OnSucceeded, OnFailed);
}
我设置了警报来检查它是否正在抓取标签值,但它根本没有显示标签。任何帮助将不胜感激。
【问题讨论】:
-
为什么不使用中继器并添加一些 css 类以使查找更容易?
-
不管标记是如何创建的——尽管我同意我不会这样做——添加一些 CSS 类肯定会有所帮助
标签: javascript c# html asp.net html-table