2009-06-29 50 views
1

我正在创建一个自定义的ASP.NET AJAX服务器控件,其中可以在该页面上放置多个控件实例。该控件包装JavaScript对象,我需要访问每个单独控件的这些对象。例如,JavaScript对象可能具有一个名为“x”的属性,而control1可能将x设置为5,而control2可能将x设置为10.我如何访问每个单独控件的JavaScript对象?这是一个有点代码片断,可以帮助:在自定义ASP.NET AJAX服务器控件中访问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

你能说清楚'你可以访问每个控件的JavaScript对象吗?例如,您是否希望单个脚本知道每个包装对象? – 2009-06-29 21:18:25

回答

1

克里斯的建议文章使我找到了正确的解决方案。为了访问自定义控件的JavaScript属性,您必须使用ScriptControl的库执行$ find函数来定位您的控件。例如:

的JavaScript在ASP.NET页面实现控制

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;  
    } 
} 

注:我不知道etiquitte的回答你自己的问题。我会对Chris的答案进行投票,以帮助我找到正确的文章。如果还有其他礼仪规则,我乐意提供。