需要解决.Net母版页名称管理问题

时间:2009-11-15 07:18:14

标签: c# asp.net javascript master-pages asp.net-3.5

我正在评估将基于旧框架集的asp.net网站转换为使用母版页。阻碍我的唯一事情是更新每一页以处理名称错误所需的大量工作。我的大多数问题都是使用javascript引用硬编码的Id。

我有没有办法告诉ASP.Net,对于特定的内容区域,我不希望发生错位。留给我处理名称冲突。

注意

我知道.Net 4.0有一个解决方案detailed here。我想要一个不涉及等待的解决方案,需要.Net 3.5。

更新

任何关于开源替代主页的建议都会让我直到.Net 4.0?或者如何解决破解工作的黑客工作解决方案。感谢

2 个答案:

答案 0 :(得分:3)

唯一“支持”的方法是不使用定义为“runat =”server“”的元素。否则,.NET 4.0是第一次为您提供一致的,受支持的机制来进行此更改。

您可以通过其他方式解决这个问题,但没有什么是容易/快速实施的。

答案 1 :(得分: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包括由母版页,嵌套控件等完成的任何修改