2011-11-27 64 views
1

因爲我已經進入ASP.NET,我發現了很多非常酷的功能,主要使編程更容易。用戶控件元素和jQuery自動更正ID引用

雖然我在一方面苦苦掙扎。

如果我創建一個具有與其相關的Javascript函數負載的用戶控件,則在呈現用戶控件時,.NET會根據用戶控件的名稱更改所有包含前置值的ID,它包含PlaceHolder和MasterPage的ID。

很明顯,這會停止任何依賴ID的javascript正常工作。

我可以通過手動更改JavaScript中的引用來繞過此操作,但是如果我想將此內容放入不同的placeHolder中,該怎麼辦?

有沒有辦法動態地解決這個問題?

回答

2

有一對夫婦的事情可以做,你可以注入控制名字進入你的JavaScript使用ClientID財產這樣的 -

var txt = document.getElementById('<%=TextBoxID.ClientID%>'); 

或在.net 4中,您可以通過ClientIDMode屬性控制控件的命名,本文中還有更多詳細信息 - http://www.4guysfromrolla.com/articles/031710-1.aspx

+0

謝謝。我正在使用.NET 2.0,所以只能通過將名稱傳入JS來完成它,現在我通過使用'var correctIDs = $('#<%= name.ClientID%>')來完成該操作。attr('id ').replace('name','');'並在任何ID引用之前添加correctIDs變量。謝謝。 –