Javascript 与控件ID关联的访问服务器控件?
我已经编写了一个.NETWeb用户控件。它包括一些服务器控件和一些支持JavaScript的控件 我还有一个全局Javascript 与控件ID关联的访问服务器控件?,javascript,.net,webforms,webusercontrol,Javascript,.net,Webforms,Webusercontrol,我已经编写了一个.NETWeb用户控件。它包括一些服务器控件和一些支持JavaScript的控件 我还有一个全局ValidateMyControl()JavaScript函数,它返回一个值,指示当前控件是否包含有效数据。可以从包含控件的页面上的JavaScript调用此函数 我的问题是当一个页面上有多个控件实例时。我可以让页面的客户端脚本像这样传递控件ID: ValidateMyControl('<%= MyControl.ClientID %>'); var instanceDa
ValidateMyControl()
JavaScript函数,它返回一个值,指示当前控件是否包含有效数据。可以从包含控件的页面上的JavaScript调用此函数
我的问题是当一个页面上有多个控件实例时。我可以让页面的客户端脚本像这样传递控件ID:
ValidateMyControl('<%= MyControl.ClientID %>');
var instanceData = {};
$(function() {
instanceData['<%= this.ClientID %>'] = {
HiddenID: '<%= hdnCompanyId.ClientID %>',
TextID: '<%= txtCompanyName.ClientID %>',
ErrorMessageID: '<%= divErrorMessage.ClientID %>'
};
});
其思想是在初始化期间向数组添加一个对象,该对象将控件实例映射到其服务器控件的ID
但这似乎效率低下。希望找到更好的方法。为用户控件内的服务器控件设置
class
属性-即使没有定义此类css类。然后:
function ValidateMyControl(aControlId) {
var companyId = $("#" + aControlId).find(".classCompanyId").val();
...
}
这似乎是一个合理的建议,但我发现控件本身没有任何元素。它呈现子控件,但容器没有元素。将用户控件的内容包装在面板中(客户端上的div),并使用
ValidateMyControl(“”)代码>。甚至在具有id=”“
的非runat服务器div中。