![](/img/trans.png)
[英]A control is already associated with the element - How do I discover the id of the control?
[英]Access Server Control Associated with Control ID?
我已經編寫了一個.NET Web用戶控件。 它包括一些服務器控件和一些支持的JavaScript。
我還有一個全局ValidateMyControl()
JavaScript函數,該函數返回一個值,該值指示當前控件是否包含有效數據。 可以從包含控件的頁面上的JavaScript調用此函數。
我的問題是頁面上有多個控件實例。 我可以讓頁面的客戶端腳本像這樣傳遞控件ID:
ValidateMyControl('<%= MyControl.ClientID %>');
這樣可以確定代碼嘗試驗證的實例。
但是我的ValidateMyControl()
控件將如何使用該ID來引用與請求的實例關聯的服務器控件。
我沒有想到的一切似乎對我來說都是一致的。 有小費嗎? 還是以其他方式處理多個實例?
編輯:
因此,我想到的一種方法如下所示:
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();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.