1

変更時に入力に入力された値に移動するページネーション入力を作成しました。

ここに画像の説明を入力

ページ範囲を検出し、その範囲内のページ間のナビゲーションを許可します。例/image-gallery-album-1.aspx?page=3

<form type="get" onchange="return false">
  <div class="pagerUI">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr> 
        <!-- previous page -->
        <xsl:if test="$page &gt; 1">
          <td class="pager-prev"><a class="previous" href="{concat('?page=', $page - 1, $qs)}" title="Previous page">&#8249;</a></td>
        </xsl:if>
        <td>Page</td>
        <td><input type="number" name="page" id="page" min="1" >
          <xsl:choose>
            <xsl:when test="$page=1">
              <xsl:attribute name="value">1</xsl:attribute>
            </xsl:when>
            <xsl:otherwise>
              <xsl:attribute name="value"> <xsl:value-of select="$currentPageNumber" /> </xsl:attribute>
            </xsl:otherwise>
          </xsl:choose>
          <xsl:attribute name="max"> <xsl:value-of select="$numberOfPages"/> </xsl:attribute>
          </input></td>
        <td>of <xsl:value-of select="$numberOfPages"/></td>
        <!-- next page -->
        <xsl:if test="$page * $resultsPerPage &lt; count($matchedNodes)">
          <td class="pager-next"><a class="next" href="{concat('?page=', $page + 1, $qs)}" title="Next page">&#8250;</a></td>
        </xsl:if>
      </tr>
    </table>
  </div>
</form>

ただし、これを XSLTSearch コードに追加すると、URL が検索文字列を失うため機能しません。

/image-search.aspx?search=football&page=3に移動する代わりに

/image-search.aspx?page=3に移動します。検索結果を表示するための検索基準がないため、そのページには結果が表示されません。

フォームを変更して、URL を変更して検索値を含める「アクション」を含めようとしましたが、動的であるため入力値を含めることができません。

たとえば、次のフォームで入力に値を入力すると、URL は次のように更新されます

onchange と action および method post 属性を使用してフォームを検索します。

<form type="get" onchange="return false">
  <xsl:attribute name="method"> <xsl:text>post</xsl:text> </xsl:attribute>
  <xsl:attribute name="action"> <xsl:text>?search=</xsl:text> <xsl:value-of select="$search"/><xsl:text>&amp;</xsl:text>page= (input value)</xsl:attribute>

送信された値を検出して URL の検索文字列に解析する JavaScript または何らかの方法はありますか?

任意の支援をいただければ幸いです。乾杯、JV

4

1 に答える 1

1

注: 投稿へのコメントによると、問題は $qs 変数にある可能性が高いとのことですが、参考までに、Umbraco でクエリ文字列の値を取得する方法について説明します。


Umbraco では、次を使用して XSLT でクエリ文字列値を取得できます。umbraco.library

したがって、検索の値を取得するには、次のように呼び出します。

<xsl:variable name="searchValue" select="umbraco.library:RequestQueryString('search')"/>

これにより、searchValue という変数が作成され、これを使用して URL にクエリ文字列値を再挿入できます。

このようなもの:

<a class="next" href="{concat('?page=', $page + 1, '&amp;search=', $searchValue)}" title="Next page">&#8250;</a>

umbraco.library の詳細については、our.umbraco.orgサイトを参照してください。

于 2012-12-20T11:40:52.057 に答える