2009-11-15 54 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等