0

我在使用 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>

由于存在狂野的输入,这弄乱了我网站的其他部分

感谢您的宝贵时间,我将不胜感激任何建议!

4

1 回答 1

1

通过使用JS在页面的其他部分提交隐藏表单而不是在表格中包含表单来解决它。

于 2012-10-30T10:01:38.763 回答