0

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を直接使用する必要がありますが、ここでやろうとしていることは課題の範囲を超えています。

4

2 に答える 2

2

XSLT は、必要なほとんどすべてのものを生成できますが、最初に何を生成したいかを知る必要があります。

ASP.Net では、CommandArgument および OnCommand イベントを使用してこれを行うことをお勧めします。

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

その後、1 つのイベント ハンドラーですべてのボタン イベントを処理できます。

入力 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>
于 2008-10-12T11:49:16.443 に答える
1

XmlDataSourceをGridViewまたはRepeaterと一緒に使用してみませんか。どちらか適切な方を使用し、テンプレートを使用して、Xml要素から適切なプロパティにバインドされたカスタムボタンを生成します。必要に応じて、XSLTを使用してデータを変換(並べ替え、サブセットの抽出、プロパティの選択など)することもできます。

于 2008-10-12T17:32:18.280 に答える