-1

我正在用 asp.net-c# 开发一个迷你项目......我有一个困惑......我如何在运行时看到文本框的数量以在 sql server 2005 中插入记录。

例如...

如果我在运行时想要 3 个文本框,那么我们可以通过在 web 表单中轻松地做到这一点......

但是当我们从数据库中检索记录时,我们不知道要插入数据库的确切记录数......

我需要在用户指定编号时动态创建文本框...如果用户将行数指定为 3,则应将 3 个文本框添加到 Web 表单中,并且我还需要阅读稍后输入的文本(在我的情况下,它的标记为学生)……

这样做的最佳方法是什么?? 谢谢

4

3 回答 3

0

你在这里有很多选择。不幸的是,我无法了解哪种方法对您最有意义,因为我无法说明如何使用附加控件。

但一种选择是分配所需控件的新实例并将其添加到父控件的 Controls 集合中。

另一种方法是使用中继器、网格或其他数据控件。如果控件的数量取决于您需要显示的数据项的数量,请使用此方法。

还有一种方法是将文本插入到例如带有您需要的 HTML 标记的 Literal 控件中。如果您不需要将值回发到服务器,这是一种更精简的方法,尽管它可能需要更多的工作。

于 2012-05-03T10:31:51.110 回答
0

尝试这样的事情Page_Init

 for (int i = 0; i < ANYNUMBER; i++) 
       {
                var textBox = new TextBox();
                textBox.ID = "txb_" + i.ToString();                    
                this.Controls.Add(textBox);
       }

您还可以查看在 ASP.NET 中动态创建控件

于 2012-05-03T10:26:51.700 回答
0

使用中继器。 http://msdn.microsoft.com/en-us/library/c012haty(v=vs.90).aspx

这是一个使用没有真实数据源的中继器的示例(在 VB.NET 中)。

VB.NET Repeater 无数据源的简单数据绑定

这是在 C# 中

myRepeater.DataSource = new int[3];
myRepeater.DataBind();

<asp:Repeater id="myRepeater" runat="server">
<ItemTemplate>
  <input type="text" />
</ItemTemplate>
</asp:Repeater>
于 2012-05-03T10:26:52.493 回答