Как игнорировать параметр, добавленный в файл XSLT, если параметр не указан? - PullRequest
0 голосов
/ 12 октября 2019

В моем XSLT-файле я должен добавить параметр, который позволяет пользователю выбрать «жанр» книги, он выбирается из выпадающего списка и нажимается кнопка, чтобы обновить параметр XSLT до выбранного жанра

enter image description here

<xsl:apply-templates select="ListOfItems/*[Genre = $Genre]"/>

Мой XML-файл выглядит так:

<ListOfItems>
 <Product>
    <Title>Book A</Title>
    <Price>15</Price>
    <Author>J Smith</Author>
    <Genre>Medical</Genre>
  </Product>
  ... etc
</ListOfItems>

Пользователь выбирает жанр из выпадающего списка и нажимает кнопку

Protected Sub loadGenre_Click(sender As Object, e As EventArgs) Handles loadGenre.Click
    Dim xslArg As XsltArgumentList = New XsltArgumentList()
    xslArg.AddParam("Genre", "", "" + genreSelect.Text)
    Me.xmlProducts.TransformArgumentList = xslArg
End Sub

Моя проблема в том, что я хотел бы, чтобы ВСЕ продукты отображались изначально, есть ли способ включить или выключить параметр XSLT в зависимости от того, выбрал ли пользователь жанр?

1 Ответ

1 голос
/ 12 октября 2019
You should be able to use an xsl:if statement like:
```
<xsl:if test="$Genre = ''">
    <xsl:apply-templates select="ListOfItems/*"/>
</xsl:if>

<xsl:if test="$Genre != ''">
    <xsl:apply-templates select="ListOfItems/*[Genre = $Genre]"/>
</xsl:if>
```
you could also use `<xsl:choose>`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...