我正在创建一个自定义ASP.NET AJAX服务器控件,其中可以在页面上放置控件的多个实例。该控件包装JavaScript对象,我需要访问每个单独控件的那些对象。例如,JavaScript对象可能具有名为“x”的属性,control1可能将x设置为5,control2可能设置为10.如何访问每个控件的JavaScript对象?以下是一些可能有用的代码段:
HTML
<CustomControl:MyControl ID="MyControl1" runat="server" x="5"/>
<CustomControl:MyControl ID="MyControl2" runat="server" x="10"/>
的JavaScript
alert(MyControl1.x); //result 5
alert(MyControl2.x); //result 10
答案 0 :(得分:1)
以下是一些可以帮助您使用ASP.NET AJAX构建自定义服务器控件的链接:
文章:
ASP.NET AJAX: Create AJAX Server Controls using the ScriptControl base class
ASP.NET 3.5: Create AJAX Extender Controls using the ExtenderControl base class
视频:
答案 1 :(得分:1)
Chris的建议文章引导我找到了正确的解决方案。要访问自定义控件的JavaScript属性,必须使用ScriptControl的库来执行$ find函数来定位控件。例如:
实施控件的ASP.NET页面中的JavaScript
var ctrl1 = $find("<%=MyControl1.ClientID%>");
var ctrl2 = $find("<%=MyControl2.ClientID%>");
ctrl.set_x(5);
alert(ctrl1.x); //result 5
ctrl2.set_x(10);
alert(ctrl2.x); //result 10
控制中的JavaScript
CustomControl.MyControl = function(element) {
CustomControl.MyControl.initializeBase (this, [element]);
this.x = null;
}
CustomControl.MyControl.prototype = {
set_x: function(value) {
this.x = value;
}
}
注意:我不确定要回答你自己的问题。我将向克里斯的答案进行投票,以帮助我找到正确的文章。如果还有其他优惠规则,我很乐意帮忙。
答案 2 :(得分:0)
您可能需要使用可怕的eval()函数将字符串转换为JSON,
这是一篇很棒的帖子,可以帮助您:Safely turning a JSON string into an object