加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET:在客户端添加控件

发布时间:2020-12-16 03:54:03 所属栏目:asp.Net 来源:网络整理
导读:如果我有一个带有表单的页面(想象一个简单的只有TextBoxes和一个提交按钮)并且我想允许用户通过 javascript动态地向表单添加更多TextBox,那么处理请求服务器端的最佳方法是什么? 示例:我的页面呈现如下: input type = "text" id = "control1" name = "con
如果我有一个带有表单的页面(想象一个简单的只有TextBoxes和一个提交按钮)并且我想允许用户通过 javascript动态地向表单添加更多TextBox,那么处理请求服务器端的最佳方法是什么?

示例:我的页面呈现如下:

<input type = "text" id = "control1" name = "control1" />
<input type = "text" id = "control2" name = "control2" />
<input type = "text" id = "control3" name = "control3" />
<input type = "submit" />

用户触发一些Javascript,页面结果如下:

<input type = "text" id = "control1" name = "control1" />
<input type = "text" id = "control2" name = "control2" />
<input type = "text" id = "control3" name = "control3" />
<input type = "text" id = "control4" name = "control4" />
<input type = "text" id = "control5" name = "control5" />
<input type = "submit" />

处理这种情况的最佳方法是什么,或者更一般地说,使用动态生成的客户端和服务器端输入(例如,如何从数据库中获取的某些数据开始生成服务器端)?

解决方法

如果您希望能够使用FindControl方法在后面的代码中访问它们,那么AJAX UpdatePanel可能是您最好的选择.请记住,每次更新UpdatePanel时,您都要经历整个页面生命周期,但只能从服务器获取更新面板中呈现的部分,因此要小心开销.

如果使用Javascript动态创建它们,则无法使用FindControl在后面的代码中访问它们,因为它们不会在页面事件生命周期中重新创建.另外,要小心,因为如果你使用某种循环同时创建了很多它们,它可能会减慢速度,特别是在Internet Explorer中.

如果您使用Javascript动态创建控件,您还可以考虑使用带有WebMethods的AJAX和WebServices来提交数据而不是回发.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读