[英]Masterpage javascript causes an object reference error when asp.net control doesn't exist in the content page
因此,這就是問題所在:我有一個位於某些內容頁面上的asp.net控件,但不在其他內容頁面上。 我想在$(document).click事件中引用此asp.net控件,此代碼位於母版頁中。 下面的代碼是我這樣做的方式; 它在ContentPlaceHolder“ body”中搜索控件“ dep_ddb”,並獲取其客戶端ID。
var dep_ddb = document.getElementById('<%= body.findcontrol("dep_ddb").ClientId %>');
var filterButton = document.getElementById('<%=body.findcontrol("filterButton").ClientId %>');
當我加載包含控件的頁面時,這非常有用。 不幸的是,當加載不使用控件但使用母版頁的頁面時,我在該VB代碼上收到對象引用錯誤:<%= blah blah %>。
我嘗試使用javascript if語句來檢測內容頁面是否不包含控件(僅通過使用標題來檢查我們是否正在處理我知道不會包含該控件的內容頁面):
if (ttl.indexof('| Sign Up') == -1) {
var dep_ddb = document.getElementById('<%= body.findcontrol("dep_ddb").ClientId %>');
var filterButton = document.getElementById('<%=body.findcontrol("filterButton").ClientId %>');
};
。 。 。 但是它仍然導致對象引用錯誤。 我相信ASP會先嘗試編譯<%%>標記中包含的代碼,並且由於不存在而返回錯誤。 這意味着沒有必要基於JavaScript的“ if語句”,我可以使用它來省略此代碼。
所以我的問題是這樣的:
當控件存在於內容頁面中時,可以使用哪種方法從母版頁安全地引用asp.net控件,而當該控件不存在時,可以忽略該引用?
請通過以下兩個鏈接。 也許您會得到一些幫助:
還有一件事,而不是使用body.findcontrol("dep_ddb").ClientId
嘗試通過從頁面源獲取它來提供直接的客戶端ID。 那么我不會向您顯示任何服務器錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.