2009-11-15 14 views
4

我正在評估將基於舊框架集的asp.net網站轉換爲使用母版頁。唯一讓我失望的是需要花費大量的工作來更新每個頁面來處理名稱修改。我的大部分問題都與JavaScript引用硬編碼的ID有關。需要解決方法.Net主頁名稱處理

有沒有一種方法可以讓我告訴ASP.Net一個特定的內容區域,我不希望發生變形。留給我處理名稱衝突。

注意

我知道.NET 4.0有此作爲detailed here的解決方案。我想要一個不涉及等待的解決方案,需要.Net 3.5。

更新

任何的開源替代品masterpages將由得到我,直到.NET 4.0的建議?或者如何解決混亂的工作解決方案。謝謝

+1

杜佩:http://stackoverflow.com/questions/844567/any-way-to-prevent - 主的頁面,從變化的元件型IDS – 2009-11-18 02:10:12

回答

3

唯一「支持」的方法是不使用定義爲「runat =」server「」的元素。否則,.NET 4.0是您第一次獲得一致的支持機制來進行此更改。

你也許能夠通過其他方式解決這個問題,但沒有什麼會很容易/快速實現。

0

執行此操作的一種方法是使用一些服務器生成的JavaScript將生成的ID與更友好的名稱相關聯。您可以使用ClientID屬性訪問生成的ID。例如:

<asp:Label runat="server" ID="myInfo" Text="Initial text" />  
<script type="text/javascript"> 
    function RegObj(clientId, anId) { 
    eval('window.' + clientId + ' = document.getElementById(anId)'); 
    } 
    RegObj('mytext', '<%= myInfo.ClientID %>'); 
    mytext.innerHTML = 'my text'; 
</script> 

此報告ID包括由母版頁,嵌套控件做過任何的mangling等