以编程方式在ASP.Net中创建具有唯一ID的文本框

时间:2010-01-25 15:29:00

标签: asp.net forms

我想知道在我的循环中创建文本框的最佳方法是什么,这样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>

2 个答案:

答案 0 :(得分:2)

您无法为asp.net TextBox执行动态ID。您可以使用简单的html <input type="text">文本框吗?然后你可以分配你想要的任何ID。

另一种方法是使用转发器控件来生成表。然后,每个TextBox将自动获得唯一ID。如果你需要在代码中获取id,那么在转发器的ItemDataBound方法中,使用FindControl来获取TextBox的句柄并读取ids /

答案 1 :(得分:1)

您需要使用Repeater control中的this demonstration