我正在处理一个继承了基页的页面。aspx页包含一个控件,该控件使用xslt将xml文档转换为html标记。在该文档中,我使用了以下内容:
<xsl:template match="Headline">
<h1 runat="server" id="h1" class="article-heading">
<xsl:value-of select="text()"/>
</h1>
</xsl:template>我正在尝试获取h1的值以将其设置为page.title,使用page.findControl可以做到吗?
发布于 2009-11-11 02:02:34
浏览器中的XSLT倾向于在客户端而不是服务器端进行解释。使用Page.FindControl查找H1的内容不会太远,因为返回的只是文字语句。
最好的方法是在服务器上的代码后台中打开XML文档,并从那里设置页面标题。
发布于 2009-11-11 02:15:49
您可以使用javascript在客户端查找h1,然后将其设置为document.title
发布于 2009-11-11 07:10:08
不幸的是没有,因为您的<h1>元素从未被添加到服务器上的控件树中。即使您有XSLT,ASP.NET也不能解析runat="server"转换产生的超文本标记语言。
您将不得不通过解析XML来获得标题。使用XPath应该很容易。
https://stackoverflow.com/questions/1709882
复制相似问题