【问题标题】:c# append control on each clickc# 在每次点击时附加控件
【发布时间】:2011-08-13 02:42:23
【问题描述】:

我想使用 asp.net 创建一个表单字段,用户可以添加新的文本框控件。最初,只有一个文本框,当用户单击附加文本框按钮时,将生成新的文本框控件,并且将保留以前的文本框。有什么建议? (除了用户可以提供文本框数量的输入和将生成提供的数字的提交按钮)

编辑:我正在使用 asp.net,我使用 visualstudio

为了便于理解,我举个例子:

在用户控件中

 <asp:TextBox Text="Item Name" ID="ItemName" runat="server"></asp:TextBox>
    <asp:TextBox Text="Item Desct" ID="Description1" runat="server"></asp:TextBox>
    <asp:Button OnClick="addDesc_click" ID="addDesc" runat="server" Text="Add More Descriptions" />

所以基本上,每当用户单击按钮时,我都想在后面的代码中创建更多的文本框。新的文本框将使用第一个文本框的类似 ID 生成,例如 Description2、Description3 等...

【问题讨论】:

  • 银光? wpf? ASP?表格? (需要更多信息)
  • 这是个好问题,您只需要告诉我们您正在使用什么——asp.net、winforms 等。

标签: c# asp.net controls


【解决方案1】:

如果您想回帖,Levisaxos 的建议适用于 ASP.NET。如果您想要这个客户端,请查看 JavaScript,或者(更容易)像 JQuery 这样的 JavaScript 库。

如果这是某种类型的 Windows 应用程序或 JavaScript,您遵循相同的基本方法,但不必担心客户端脚本。

【讨论】:

  • +1 jQuery 是要走的路。它具有多种功能,可让您即时向 div 添加文本框或其他任何内容。
  • 首先我想使用纯 asp.net 创建页面,然后我将使用 javascript 对其进行修改 :) 但我希望页面在那些不支持任何 javascript 的移动浏览器中运行 :)
【解决方案2】:

简单模式:

public void ButtonClick() 
{
    var bt = new TextBox();
    this.Controls.Add(bt);
}

如果您想要更多活动,请将所有文本框添加到列表中,并找出获取文本等的方法。

还要确保更改每个文本框的 top 或 position 属性,否则它们只会堆叠在一起。

希望这会有所帮助。

【讨论】:

  • 请再看一遍问题,我编辑了它以方便理解。
  • 此方法只添加一次文本框,因为当用户点击按钮时,之前的动态控件将消失
【解决方案3】:

我不得不用更具体的标题重新提出问题,并在那里得到了答复。对于答案检查这个帖子。 Persistent dynamic control in ASP.Net

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多