我在使用 C# 生成 HTML 表时遇到问题。在每一行上,我都有一个删除按钮,用于从数据库中删除该行。
但是它似乎不适用于第一行,我发现问题是第一行周围没有 -tag,我不知道为什么。
我正在使用类似下面的代码来生成表格:
// Initalize SQL connection...
string resp = ""; // Response string, used to build the html
resp += "<table id='hor-minimalist-b' summary='Product list'>";
// Display the column names as headers
resp += "<thead><tr>";
resp += "<th scope='col'>Artikel</th>";
// Use empty headers for button columns
resp += "<th scope='col'></th>"; // Remove button
foreach (DataColumn dc in ds.Tables[0].Columns)
{
resp += "<th scope='col'>" + dc.ColumnName + "</th>";
}
resp += "</tr></thead>";
// Display the data for each row. Loop through the rows first.
resp += "<tbody>";
foreach (DataRow dr in ds.Tables[0].Rows)
{
resp += "<tr>";
// Then loop through the columns for the current row print them
string artID = getArticleID(dr); // Get the primary key for row
for (i = 1; i <= ds.Tables[0].Columns.Count; i++)
{
// Add additional buttons
if (i == 2)
{
// Add remove button
resp += "<td>";
resp += "<form method='post' action='Default.aspx'>";
resp += "<input type='hidden' name='action' value='deleteRow' />";
resp += "<input type='hidden' name='rowID' value='" + artID + "' />";
resp += "<input type='submit' value='Ta bort' onclick=\"return confirm('Är du säker på att du vill ta bort artikel " + artID + "');\" />";
resp +="</form>";
resp +="</td>";
}
resp += "<td>" + dr[i - 1] + "</td>";
}
resp += "</tbody>";
resp += "</table>";
}
最终结果类似于以下 HTML:
<table id="hor-minimalist-b" summary="Product list">
-
<thead>
-
<tr>
...
</tr>
</thead>
-
<tbody>
-
<tr>
<td id="val15462_0">
15462
</td>
-
<td>
-
<form method="post" action="Default.aspx">
<input type="hidden" name="action" value="deleteRow" />
<input type="hidden" name="rowID" value="15462" />
<input type="submit" value="Ta bort" onclick="return confirm('Är du säker på att du vill ta bort artikel 15462');" />
</form>
</td>
-
<td>
<input value="Ändra" type="button" onclick="editArt(15462)" />
</td>
<td id="val15462_1">
AX-10.535
</td>
<td id="val15462_3">
Detaljspecifikt värde A
</td>
<td id="val15462_4">
Detaljspecifikt värde B
</td>
<td id="val15462_2">
kitten2.jpeg
</td>
</tr>
-
<tr>
<td id="val15463_0">
15463
</td>
-
<td>
-
<form method="post" action="Default.aspx">
<input type="hidden" name="action" value="deleteRow" />
<input type="hidden" name="rowID" value="15463" />
<input type="submit" value="Ta bort" onclick="return confirm('Är du säker på att du vill ta bort artikel 15463');" />
</form>
</td>
-
<td>
<input value="Ändra" type="button" onclick="editArt(15463)" />
</td>
<td id="val15463_1">
AX-10.536
</td>
<td id="val15463_3">
Detaljspecifikt värde A
</td>
<td id="val15463_4">
Detaljspecifikt värde
</td>
<td id="val15463_2">
kitten3.jpg
</td>
</tr>
...
</tbody>
</table>
注意第一行周围没有表单标签。而且我真的不确定是什么原因造成的。
更新: 我更正了上面的 HTML,它没有正确粘贴。现在粘贴的是从构建 HTML 的服务器函数返回的字符串,它确实包含表单标记(从 VS 中的 XML 可视化器可以看出,所以不要介意 - 的)。
但是,当我使用浏览器调试网站时,表单标签不会出现在第一个数据行中,如下所示:
<td>
<input type="hidden" name="action" value="deleteRow"/>
<input type="hidden" name="rowID" value="15462"/>
<input type="submit" value="Ta bort" onclick="return confirm('Är du säker på att du vill ta bort artikel 15462');"/>
</td>
由于存在狂野的输入,这弄乱了我网站的其他部分
感谢您的宝贵时间,我将不胜感激任何建议!