javascript - WebControl在<script>标签中创建JS对象,如何获取页面JS中的对象?

标签 javascript asp.net ajax web-controls

我一直在尝试制作自己的 WebControl,并尝试在不使用 MS AJAX 的情况下添加一些 AJAX 功能。我不确定将 JS 对象从 WebControl 传递到页面脚本的最佳方法。

我使用Page.ClientScript.RegisterClientScriptResource将我的控件的 JS 发送到浏览器,然后我通过服务器代码实例化 JS,如下所示(RenderEndTag 写出一个调用 new 的 <script>):

public class SearchBox : WebControl
{
    //...
    public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer)
    {
        //...
        writer.Write("<script type=\"text/javascript\">new SearchBox($('#" + this.ClientID + "'));</script>");
    }
}

现在我需要在特定页面的 JS 中使用该对象(例如添加 valueChanged 处理程序)。我该怎么办?以控件 ID 作为键的全局数组可以工作吗?

最佳答案

由于您使用的是 jQuery,因此您可以在 SearchBox 的 javascript 构造函数中执行的操作之一如下:

var SearchBox = function($element) {
    $element.data("searchBox", this);
}

然后您可以稍后再次从 jQuery 轻松检索此内容:

var sb = $("#myElement").data("searchBox");

关于javascript - WebControl在&lt;script&gt;标签中创建JS对象,如何获取页面JS中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283732/

相关文章:

javascript - 将多个参数从 thymeleaf 标签传递给 javascript 函数

javascript - 功能组件数据在 Framer Preview 中更新时不会重新渲染

javascript - 无法将我本地开发的 Angular 模块导入 Angular 应用程序

javascript - 如何从javascript为按钮onclick选项创建一个函数

jquery - 如何在 $ajax(js 文件)中使用 laravel url 和路由助手

php - jQuery:发布一个多维数组

javascript - 带有持续时间步数计数器的文本框,格式为 HHHH :MM:DD format

c# - ORA-01460 触发器在 select 语句上不一致

.net - 诊断.NET中的内存泄漏的工具(ASP.NET应用程序)

c# - 单击按钮后的 ASP.NET gridview 控件 rowCreated 函数