我正在处理一个继承基页的页面。 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完成吗?
答案 0 :(得分:1)
浏览器中的XSLT往往在客户端而不是服务器端进行解释。使用Page.FindControl来查找H1的内容不会让你太过分,因为所有将返回的是文字&lt; xsl:value-of ...&gt;言。
最好的方法是在服务器上的代码隐藏中打开XML文档,然后从那里设置页面标题。
答案 1 :(得分:1)
您可以使用javascript在客户端找到h1,然后将其设置为document.title
答案 2 :(得分:0)
不幸的是没有,因为您的<h1>
元素永远不会被添加到服务器上的控制树中。即使您有runat="server"
ASP.NET也无法解析因XSLT转换而产生的HTML。
您必须使用解析XML来获取标题。使用XPath应该很容易。