2017-05-02 2 views
1

현재 ASPDNSF CMS xml 패키지에서 작업 중이며 웹 쿼리 매개 변수 pageZise 기본값을 변경하려고합니다. 내 pronblm은 제품을 처음 검색 한 다음 페이지 크기가 0 일 때 200 제품 주위의 제품 목록을 표시하므로 페이지 크기가 0인지 확인한 다음 페이지 크기 pagenumber * 12를 설정해야합니다. 다음런타임시 웹 쿼리 매개 변수 값을 변경하는 xslt (xml 패키지)의 매개 변수 값을 재 할당하는 방법

내 코드 웹 쿼리 코드 :

<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> 

그리고 난 다음 코드에서 같은 advence : Harpreet 싱

답변

0

에서

<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> 

감사 목표를 달성하기 위해 노력하고 기본값을 변경하면 웹 쿼리의 각 쿼리 문자열 위치에서 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> 
아래의 코드