c# - 动态创建控件并跨回发保存控件值 - ASP.Net C#

标签 c# asp.net dynamic-controls

考虑这个 -

我允许最终用户通过获取一些详细信息在 ASP.Net 页面中动态创建选项卡控件。对于添加的每个选项卡,我都会得到一些设置 -

  1. 标签标题
  2. 标签内容
  3. 标签页脚链接

所以我得到了每个选项卡的这些详细信息。为用户提供了一个按钮“添加标签”到更多标签。所以我需要在页面中多添加一个标签设置面板来获取标签设置。但是这样做,我丢失了在先前创建的动态选项卡设置面板中输入的值。用户可以添加尽可能多的选项卡并为每个选项卡输入设置。最后,当他们保存它时,我构建选项卡控件(基于他们的设置和内容)并呈现该控件。

由于控件是动态的,我有两个选择 -

  1. 在添加第 n 个选项卡时重新创建之前创建的 n - 1 个选项卡设置面板。因此,在每次回传中,我需要为每个选项卡重新创 build 置面板。但我不知道如何在这种情况下保持值(value)观。
  2. 在客户端添加带有简单 html 控件的设置面板,并在页面 UnLoad 上解析控件 -> 解析设置 -> 将其保存在隐藏字段中 -> 在服务器端获取它。在这种情况下,我失去了我需要为控件编写验证脚本的所有服务器端功能。

关于如何更好地执行此操作的任何见解?

最佳答案

我会在服务器端添加控件,请记住您需要 re-create all controls on every postback

您可以保存需要在 View 状态中创建的任何控件的详细信息,然后根据 CreateChildControls 中的内容构建控件树。

关于c# - 动态创建控件并跨回发保存控件值 - ASP.Net C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5432413/

相关文章:

c# - Image 和 Bitmap 类都没有实现自定义相等/哈希码逻辑的原因是什么?

c# - WCF和错误处理,最佳实践

asp.net - MVC 6 @inherit RazorPage

asp.net - 如何在 ASP.NET 类中引用 Server.UrlEncode?

c# - 使用标记的 GridView 行号(仅限)

asp.net - 控件不会出现在动态创建的用户控件上

c# - 访问由 JavaScript 编辑的隐藏输入值

c# - 为什么 Asp.Net Core 2.1 WebApi 返回 500.19 错误?

c# - System.Security.Cryptography 与 Windows.Security.Cryptography

ios - 动态添加各种​​控件到scrollview(iOS/Swift)