asp.net - 在 ASP.NET 中跟踪动态创建的 DOM 元素的方法

标签 asp.net javascript jquery dom

假设您在 ASP.NET 中有一个页面,使用 JavaScript/jQuery 修改 DOM 的值是有意义的,这些值最终将在提交时由服务器读取。例如,您有一个允许最终用户添加/删除对象的表单(例如健康保险表上的受抚养人或贷款申请上的 Assets )。

有哪些方法可以确保在提交信息后服务器检测并检索到这些项目?

我已经尝试了一些有效的方法,但似乎没有一个是完美的,所以我想看看社区必须提供什么。

此外,我并不是在寻找避免动态 DOM 元素的建议(例如使用向导等)。我专门尝试使用动态创建的 DOM 元素来改进我的技术。

最佳答案

有两种方法可以做到这一点:

首先:只发布提交时的信息。只要您将 nameid 属性添加到 DOM 中的每个元素,每个元素都会在 Request.Form 中表示,因此您可以轻松地遍历此集合。

我倾向于使用 insurance_row_1insurance_row_2 等命名约定。您可以找到所有行,例如 Request.Form.AllKeys.Where(k=>k.StartsWith("insurance_row_"))


当您想在服务器上保存所有操作时:

在 javascript 中维护一个状态容器,它在一些类似字典的控件中保存信息,您可以在其中放置应用程序执行的每个操作,以及服务器是否已处理它们的状态。像这样的东西:

var stateContainer = [ 
         { 'put-insurance-row-1', false }, 
         { 'delete-insurance-row-1', false } 
];

向服务器发出 AJAX 请求以执行此类操作,并使用状态容器的键来跟踪请求是成功还是失败。成功提交请求后,将状态设置为“true”。确保按照接收事件的顺序执行此操作,因此将它们一个接一个地发送到服务器以确保保持有效状态。

如果某些状态尚未持久化,您可以(尝试)阻止关闭浏览器。

关于asp.net - 在 ASP.NET 中跟踪动态创建的 DOM 元素的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523331/

相关文章:

c# - Visual Studio 发布 Web 部署出现 ERROR_USER_NOT_ADMIN 错误

c# - ASP.NET 相当于此 PHP 代码(数组)?

c# - 性能 : Templates in a Database or a File?

javascript - 使用 locationProvider 时,刷新浏览器网页不会在 ui-router 中加载

javascript - d3.js 变量未定义,但在 Firefox 控制台中,它可以工作

javascript - 在 jquery 中排序事件

c# - 带有 HiddenField 的中继器

javascript - 正则表达式 - 仅匹配数字,不包括特殊字符 - 不起作用

jquery - 视频背景横幅(不是整页)

javascript - jquery提到jquery ui autocomplete