【问题标题】:How to reassign parameter value in xslt (xml packages) of change the web query parameter value on runtime如何在运行时更改 Web 查询参数值的 xslt(xml 包)中重新分配参数值
【发布时间】:2017-05-02 05:38:22
【问题描述】:

目前我正在处理 ASPDNSF CMS xml 包并尝试更改 web 查询参数 pageZise 默认值。 我的问题是,当我第一次搜索产品时,页面大小为 0,它显示了大约 200 个产品的产品列表,所以我想检查页面大小是否为零,那么它应该设置页面大小 pagenumber*12。

以下是我的代码网页查询代码:

<webquery name="searchresults" RetType="xml" timeout="30">
    <url><![CDATA[{SmartSearch}&searchTerm={entityName}ID:{entityID}&searchString={searchString}&sortField={sortField}&pageNumber={pageNumber}&pageSize={pageSize}&facetQuery={facet}]]></url>
    <querystringreplace replaceTag="{SmartSearch}" replacetype="webconfig" replaceparamname="SmartSearchURL" defvalue="" validationpattern=""/>
    <querystringreplace replaceTag="{searchString}" replacetype="runtime" replaceparamname="SearchTerm" defvalue="" validationpattern=""/>
    <querystringreplace replaceTag="{entityID}" replacetype="runtime" replaceparamname="EntityID" defvalue="" validationpattern=""/>
    <!-- if the EntityID is missing, then get rid of the whole searchTerm: -->
    <querystringreplace replaceTag="searchTerm={entityName}ID:&amp;" replacetype="justreplace" replaceparamname="N/A" defvalue="" validationpattern=""/>
    <querystringreplace replaceTag="{entityName}" replacetype="runtime" replaceparamname="EntityName" defvalue="" validationpattern=""/>
    <querystringreplace replaceTag="{pageNumber}" replacetype="request" replaceparamname="pageNumber" defvalue="1" validationpattern=""/>
    <querystringreplace replaceTag="{pageSize}" replacetype="request" replaceparamname="pageSize" defvalue="0" validationpattern=""/>
    <querystringreplace replaceTag="{facetGroup}" replacetype="request" replaceparamname="facetgroup" defvalue="ManufacturerID" validationpattern=""/>
    <querystringreplace replaceTag="{facet}" replacetype="request" replaceparamname="facet" defvalue="" validationpattern=""/>
    <querystringreplace replaceTag="{sortField}" replacetype="request" replaceparamname="sortField" defvalue="" validationpattern=""/>
  </webquery> 

我正在尝试通过以下代码实现目标

<xsl:param name="pageSize" select="/root/searchresults/hits/pagesize"></xsl:param>

      <xsl:param name="pageSize">
        <xsl:choose>
          <xsl:when test="string(number(/root/searchresults/hits/pagesize)) != 'NaN'">
            <xsl:value-of select="/root/searchresults/hits/pagesize" />
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="30" />
          </xsl:otherwise>
        </xsl:choose>
      </xsl:param>

      <xsl:param name="pageNumber">
        <xsl:choose>
          <xsl:when test="/root/searchresults/hits/page/text()">
            <xsl:value-of select="/root/searchresults/hits/page" />
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="0" />
          </xsl:otherwise>
        </xsl:choose>
      </xsl:param>

提前感谢:) 哈普利特·辛格

【问题讨论】:

    标签: xslt aspdotnetstorefront


    【解决方案1】:

    更改默认值应该只是更改 webquery 中每个 querystringreplace 上的 defvalue 属性。

    基本上就是下面的代码

    <webquery name="searchresults" RetType="xml" timeout="30">
        <url><![CDATA[{SmartSearch}&searchTerm={entityName}ID:{entityID}&searchString={searchString}&sortField={sortField}&pageNumber={pageNumber}&pageSize={pageSize}&facetQuery={facet}]]></url>
        <querystringreplace replaceTag="{SmartSearch}" replacetype="webconfig" replaceparamname="SmartSearchURL" defvalue="" validationpattern=""/>
        <querystringreplace replaceTag="{searchString}" replacetype="runtime" replaceparamname="SearchTerm" defvalue="" validationpattern=""/>
        <querystringreplace replaceTag="{entityID}" replacetype="runtime" replaceparamname="EntityID" defvalue="" validationpattern=""/>
        <!-- if the EntityID is missing, then get rid of the whole searchTerm: -->
        <querystringreplace replaceTag="searchTerm={entityName}ID:&amp;" replacetype="justreplace" replaceparamname="N/A" defvalue="" validationpattern=""/>
        <querystringreplace replaceTag="{entityName}" replacetype="runtime" replaceparamname="EntityName" defvalue="" validationpattern=""/>
        <querystringreplace replaceTag="{pageNumber}" replacetype="request" replaceparamname="pageNumber" defvalue="0" validationpattern=""/>
        <querystringreplace replaceTag="{pageSize}" replacetype="request" replaceparamname="pageSize" defvalue="30" validationpattern=""/>
        <querystringreplace replaceTag="{facetGroup}" replacetype="request" replaceparamname="facetgroup" defvalue="ManufacturerID" validationpattern=""/>
        <querystringreplace replaceTag="{facet}" replacetype="request" replaceparamname="facet" defvalue="" validationpattern=""/>
        <querystringreplace replaceTag="{sortField}" replacetype="request" replaceparamname="sortField" defvalue="" validationpattern=""/>
    </webquery>
    

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多