0

我正在处理单选按钮列表,在页面中选择单选按钮(代表城市)时,我需要在 XSLT Sitecore 中显示城市中的机构列表。这里我从外部网络服务获取机构列表,所以我需要作为城市的唯一 ID(存储为单选按钮的值)传递给 Web 服务。下面是我用来做同样事情的代码。

  <xsl:variable  name="city" select="sc:GetCityUniqueID()"/>
    <xsl:variable name="ID" select="sc:item($city,.)" />
    <table cellpadding="0" cellspacing="0">
     <tr>

      <td valign="top">
      <!--In the SiteCore Content Tree we are maintaining Institutions as Child Nodes to Cities.So using for each I am populating radio buttons with those many institutions under a city.Here Please note that I am setting Value to the ID which I need to pass to the Helpwr Function sc:GetInstitutions below-->
       <xsl:variable name="cities" select="$content/child::item[@template='city institution details']"/>
       <xsl:if test="$cities " >

        <xsl:for-each select="$icities"  >
         <xsl:variable name="current" select="."></xsl:variable>
         <input type="radio" Groupname="citylist">
          <xsl:attribute name="id" >
           city<xsl:value-of select="position()"/>
          </xsl:attribute>
          <xsl:attribute name="name" >city</xsl:attribute>
          <xsl:attribute name="value" >
           <sc:text field="Institute ID" select="$current" />
          </xsl:attribute>
         </input>
         <span class="chooseCity">
          <sc:text field="Name" select="$current" />

         </span>
         <br/>
        </xsl:for-each>
       </xsl:if>
      </td>


     </tr>
    </table>
    <div class="institution_results">    
       Institutions are:
    </div>




<div class="paddAll">
<!--Here 123456 should be the selected radio buttons value above,which I am passing to external webservice call done in the helper to populate Institutions-->
    <xsl:value-of select="sc:GetInstitutions('123456’)" disable-output-escaping="yes"/>

    </div>

我在这里面临的问题是如何将选定的单选按钮值传递给 XSL Helper 函数以获取机构列表并在下面的同一页面中显示结果。

任何建议都会有所帮助。

4

2 回答 2

1

在我看来,您正在尝试做一些在 XSLT 中难以完成的事情,并且可以通过在 dropdownlist-change-event 上使用带有回发事件的 SubLayout (ASCX) 而不是使用呈现 (XSLT) 来轻松完成你没有类似回发的东西。渲染主要用于显示简单的文本和列表,没有花哨的东西。如果您想坚持在 xslt 中执行此操作,您可以使用 jQuery AJAX 来完成此操作,但我建议更改此渲染为 SubLayout。

于 2013-01-17T08:51:43.287 回答
0

我对SiteCore不熟悉,但是这个博客建议通过函数访问字段值sc:fld()这个博客似乎有关于通过参数访问SiteCore字段的说明。您是否尝试过其中任何一种方法?

一旦你成功地将值输入到你的 XSLT 中(假设这里的参数或变量名称为“city”),我认为你应该能够像这样使用它,假设sc:GetInstitutions()函数确实存在:

<xsl:value-of select="sc:GetInstitutions($city)" disable-output-escaping="yes"/>
于 2013-01-17T04:46:29.497 回答