我一直在尝试制作自己的 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在<script>标签中创建JS对象,如何获取页面JS中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283732/