Page.FindControl?

时间:2009-11-10 17:53:45

标签: c# asp.net

我正在处理一个继承基页的页面。 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完成吗?

3 个答案:

答案 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应该很容易。