我正在尝试创建一个网页来创建小型播放列表。将数据输入字段后,需要将其保存到 XML 文件中。目前该表如下所示:
<%-- song list table --%>
<table runat="server" id="table" class="table">
<%-- info row --%>
<thead>
<tr>
<td>Song Title</td>
<td>Song Artist</td>
<td>Song Album</td>
<td><%-- column for delete button --%></td>
</tr>
</thead>
<%-- input rows --%>
<tbody>
<tr>
<td><input runat="server" placeholder="Title" type="text" /></td>
<td><input runat="server" placeholder="Artist" type="text" /></td>
<td><input runat="server" placeholder="Album" type="text" /></td>
<td>
<a href="#">
<img src="Images/Delete.png" onmouseover="this.src='Images/Delete-Hover.png'" onmouseout="this.src='Images/Delete.png'" alt="Delete" />
</a>
</td>
</tr>
</tbody>
</table>
新行将使用 jQuery 动态添加。当用户单击“保存”时,我需要将表数据写入其特定的 XML 文件中。目前我的后端代码如下所示:
//for each row
foreach (HtmlTableRow row in table.Rows)
{
//create row info
textWriter.WriteStartElement("Row");
//for each cell
foreach (HtmlTableCell element in row.Cells)
{
//get inputs
//write current input to xml
}
//close row
textWriter.WriteEndElement();
}
我的问题是我的代码从哪里开始能够获取每个输入的值并将它们写入 XML。
最佳答案
您需要为元素提供一个 ID,以便您可以通过它来引用它们。此外,任何动态添加的行都将无法以这种方式访问;这是因为它们并不作为服务器控件存在于控件树中,而是纯粹的客户端控件。您必须使用 Request.Form
集合来访问这些。如果您希望它们在回发中也持续存在,则必须将它们动态添加到控制树中。
如果您使用 JQuery,那么获取客户端上的所有值并将这些值发送到 Web 服务或类似的服务会更高效、更容易。
关于c# - 如何获取表行中的所有 HtmlInputText 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828516/