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

Я пытаюсь создать кнопку «Добавить в корзину» для каждого элемента, отображаемого в файле XSLT. Кнопка должна быть запущена на сервере (VB), и мне нужно передать параметры в onlick, чтобы запрошенный товар был добавлен в корзину. Возможно ли это, и если да, то как мне это сделать?

Когда я пытаюсь

<asp:Button id="Button123"
   Text="Add to Cart"
   CommandName="AddToCart"
   CommandArgument="123"
   OnCommand="CommandBtn_Click" 
   runat="server"/>

Я получаю "asp - необъявленное пространство имен"

Я тоже пробовал

<asp>
   <xsl:attribute name="Button">id="BtnAddToCart"</xsl:attribute>
   <xsl:attribute name="text">Add to cart</xsl:attribute>
   <xsl:attribute name="CommandName">AddToCart</xsl:attribute>
   <xsl:attribute name="CommandArgument">123</xsl:attribute>
   <xsl:attribute name="Command">CommandBtn_Click</xsl:attribute>
   <xsl:attribute name="runat">server"</xsl:attribute>
</asp>

Который не дает никаких ошибок, но вообще ничего не делает

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

Ответы [ 2 ]

2 голосов
/ 12 октября 2008

XSLT может генерировать практически все, что вы хотите, но сначала вам нужно знать, что вы хотите сгенерировать.

В ASP.Net я бы рекомендовал делать это с помощью событий CommandArgument и OnCommand.

<asp:Button id="Button123"
       Text="Add to Cart"
       CommandName="AddToCart"
       CommandArgument="123"
       OnCommand="CommandBtn_Click" 
       runat="server"/>

Тогда обработчик одного события может обрабатывать все события кнопки.

Поскольку я понятия не имею, как выглядит ваш входной XML, очень сложно догадаться, как вы могли бы сгенерировать это в XSLT, но вы, вероятно, хорошо бы использовали шаблоны значений атрибутов, например:

<xsl:for-each select="Item">
  ...
  <asp:Button id="Button{@Id}"
       Text="Add To Cart"
       CommandName="AddToCart"
       CommandArgument="{@Id}"
       OnCommand="CommandBtn_Click" 
       runat="server"/>
</xsl:foreach>
1 голос
/ 12 октября 2008

Почему бы не использовать XmlDataSource с GridView или Repeater, который более уместен, и использовать шаблон для генерации пользовательских кнопок, связанных с соответствующими свойствами из элемента Xml? Вы по-прежнему можете использовать XSLT для преобразования данных (сортировка, извлечение подмножеств, выбор свойств и т. Д.), Если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...