【问题标题】:how to add number of textboxes at runtime in asp.net web foms?如何在运行时在 asp.net Web 表单中添加文本框数量?
【发布时间】:2012-05-12 20:27:45
【问题描述】:

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

例如...

如果我在运行时想要 3 个文本框,那么我们可以通过在 web 表单中轻松完成...

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

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

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

【问题讨论】:

    标签: asp.net textbox runtime add insert-update


    【解决方案1】:

    Page_Init 上尝试类似的操作

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

    你也可以看看Dynamically Create Controls in ASP.NET

    【讨论】:

      【解决方案2】:

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

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

      VB.NET Repeater Simple Data Binding Without Datasource

      这里是 C#

      myRepeater.DataSource = new int[3];
      myRepeater.DataBind();
      
      <asp:Repeater id="myRepeater" runat="server">
      <ItemTemplate>
        <input type="text" />
      </ItemTemplate>
      </asp:Repeater>
      

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

        • 如果你测试过,给我gridview或repeater的例子??我认为这是我可以将记录插入数据库的简单方法...
        • 你真的没有提供足够的细节来说明你在做什么,我无法提供一个例子。如果您需要一个通用示例,可​​以在整个网络上使用中继器控件的示例。
        • 你可以看到这个链接stackoverflow.com/q/10425871/1357042我到底想做的是......
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        • 2012-01-16
        • 1970-01-01
        相关资源
        最近更新 更多