在页面回发后保留以编程方式创建的HTML控件

4
我正在通过“添加文本框”按钮动态地在页面上添加HTML输入控件,但是在提交后它们最终会被清除。有没有一种简单而好的方法可以帮助我在页面提交后保留控件及其值。
谢谢。
编辑:
- 我正在使用JavaScript在页面上创建动态控件。 - 我不处理文件上传,只是创建自定义字段。 - 我认为我需要重写SaveViewState和LoadViewState事件来保持我的控件在ViewState中。

你是使用JavaScript还是C#添加输入控件的? - Madi D.
@Madi:我正在使用JavaScript在页面上添加控件。 - Tarik
4个回答

2

保留当前页面!如果您需要上传文件,请使用ajax方法提交数据和flash上传工具。这样页面就不会刷新,而且需要重新生成动态控制的代码也会大大减少。


我也曾经这样想过,但考虑到页面非常庞大,使用Ajax不是一个好的实践方式。传回服务器的数据太多了。其实,我并没有处理上传操作,我正在创建自定义字段,并将值与其他值一起发送到数据中。 - Tarik

2

谢谢你的建议,我现在会去查看。希望我能在那里找到答案。 - Tarik

0

由于您将在回传时收到它们,因此您是否可以在服务器端动态重新创建它们?


这也是我想的,但既然这是相当常见的技术,我认为可能还有其他更好的方法来解决它。 - Tarik
我的公司网页的控件集合几乎全部在代码后台中构建,因为我们必须支持用户定义布局。我认为Gaby的想法很好,但是你可能会遇到一些动态添加控件和视图状态之间的冲突。是否遇到此问题将取决于页面的使用方式。 - Jeremy Bade

0

如果控件在每次回发时根据用户输入而不同,则可以尝试将HTML存储到单独的类中,其中您将拥有静态属性,例如 public static string WriteHTMLSubmit = ""

如果不是这样,则在代码后台中硬编码它们,这是最佳实践... if(page.isPostBack){<write contrls>}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接