asp.net - 如何处理将 JavaScript 附加到 ASP.NET 中的 UserControls 并保持多个实例隔离?

标签 asp.net javascript

假设您需要将一些 JavaScript 功能附加到 ASP.NET 用户控件,该控件在任何给定页面上可能有多个实例。由于 JavaScript 共享全局状态,因此您可以使用哪些技术来保持每个控件实例的客户端状态和行为分离?

最佳答案

嗯,您可以做的主要事情是确保您的 JavaScript 函数足够抽象,以便它们不会耦合到 HTML 控件的特定实例 - 让它们接受允许您传递各种对象实例的参数。

执行您需要执行的任何操作的 JavaScript 应该只在您的页面中存在一次,无论给定页面上有多少个用户控件实例,因此您的函数需要忽略这一事实。

如果没有更多关于您想要做什么的信息,我几乎无法提供更多帮助;这取决于您的具体情况。

<小时/>

编辑:我处理此问题特定方面的一种方法是在用户控件上创建一个静态属性(因此它在多个实例中是相同的变量),用于跟踪各种用户控件元素的客户端 ID (用户控件在控件的 OnLoad 事件中将客户端 ID 添加到此列表中);然后,在页面的 OnPreRender 事件 (IIRC) 中,将它们呈现在 JavaScript 变量中,我的代码知道要在客户端上查找并对其进行操作。我不知道这是否有意义,但它可能会对某人有所帮助......

关于asp.net - 如何处理将 JavaScript 附加到 ASP.NET 中的 UserControls 并保持多个实例隔离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332431/

相关文章:

javascript - 格式化数据以填充谷歌图表

c# - 如何以编程方式访问 EntityDataSource 选定的数据

javascript - onblur 触发太多次或根本不触发

javascript - 如何使用 Express .listen()(在 Typescript 中)处理错误?

c# - 有什么方法可以判断值来自哪个属性?

c# - 通过 UseUrls 指定监听 HTTP 端口的方式是否正确?

javascript - 不确定为什么变量未定义。可能的范围问题?

javascript - 每个和字符串索引

c# - ASP.NET 按钮单击事件未在 Bootstrap 模式中触发

javascript - 在移动设备上禁用 stellar.js