我想知道在我的循环中创建文本框的最佳方法是什么,这样ID就是唯一的,而不仅仅是“TextBox”。我需要根据每单位价格和数量加上价格。 我的项目是从数据库加载的,因此可能有任意数量,所以我需要动态生成字段。我想也许可以在表单应用程序中使用一系列字段,或者这不是正确的方法吗?
我尝试使用谷歌搜索答案,但也许我只是不能很好地写出我的问题。看起来这应该很容易解决,但我找不到答案。
这是我的代码:
<table class="proposal" width="800">
<tr>
<th>Item</th>
<th>Price per Unit</th>
<th>Quantity</th>
<th>Price</th>
</tr>
<% int x = 0; %>
<% do
{
%>
<tr>
<td valign="top">
<%= this.name[x] %><br />
<%= this.desc[x] %></td>
<td valign="top" align="right"><%= "$" + this.price[x] %></td>
<td valign="top" align="center"><asp:TextBox ID="TextBox" runat="server" Width="75px"></asp:TextBox></td>
<td valign="top" align="right"></td>
</tr>
<% x++;
} while (x != this.y);
%>
</table>
答案 0 :(得分:2)
您无法为asp.net TextBox执行动态ID。您可以使用简单的html <input type="text">
文本框吗?然后你可以分配你想要的任何ID。
另一种方法是使用转发器控件来生成表。然后,每个TextBox将自动获得唯一ID。如果你需要在代码中获取id,那么在转发器的ItemDataBound方法中,使用FindControl来获取TextBox的句柄并读取ids /
答案 1 :(得分:1)