gpt4 book ai didi

c# - 如何自动添加文本框

转载 作者:行者123 更新时间:2023-12-02 19:49:30 24 4
gpt4 key购买 nike

我有这 8 个文本框,但是当我开始认为我的页面上非常困惑时。所以,我在想如何实现一个按钮,当用户点击它时可以添加文本框。这里有人有想法或解决方案来帮助我吗?我将不胜感激。谢谢。

最佳答案

可能最好的方法是将两个文本框都放在用户控件中。然后,该用户控件可以封装属于两个文本框的所有逻辑;它可以计算两个值之间的差异,例如封装两个值的所有验证等等。您只需要写一次!

向您的页面添加占位符;给它一个“DynamicControlHolder”或类似的ID。您还需要一个隐藏字段 - DynamicControlCount - 您可以使用它来存储您添加的动态控件的数量。

两个最重要的概念是:

  • 添加 dynamic controlsright时间
  • 尝试 maintain这id 在回发之间,因此 ASP.Net 自动填充值从 ViewState 为您提供。否则,你必须管理这个你自己。

因此,当页面第一次加载时,您可以在 Page_Init 中执行类似以下操作:

{
MyUserControl control = Page.LoadControl("~/path_to_my_usercontrol");
control.ID = "MyUserControl1";
DynamicControlCount.Value = "1";

DynamicControlHolder.Controls.Add(control);
}

如果您的页面上有一个按钮“添加控件”,则在点击处理程序中:

{
int controlCount = Convert.ToInt32(DynamicControlCount.Value);
controlCount++;

//This section will add as many controls as i.
for(i = 1; i <= controlCount; i++)
{
MyUserControl control = Page.LoadControl("~/path_to_my_usercontrol");
control.ID = String.Format("MyUserControl{0}", i);
DynamicControlHolder.Controls.Add(control);
}

DynamicControlCount.Value = Convert.ToString(controlCount); //Note this is problematic
}

控制第二部分的最简单方法是使用 UpdatePanel 。其主要原因是,当您更新拥有的控件数量时,您是在页面生命周期的后期执行此操作,并且在完整回发中,该值可能不会按照回发时预期的方式增加。如果不将整个页面发回只是为了修改其中的一小部分,那么对用户来说看起来也会更好。

这些只是帮助您入门的一些想法。对于此类事情,这里有一个很好的引用:

Truly Understanding Dynamic Controls

您应该阅读一些相关内容,因为 View 状态、页面生命周期、客户端呈现和其他因素的结合使这成为 ASP.Net 中最棘手但最有趣的技术之一

关于c# - 如何自动添加文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com