2008-10-12 4 views
0

XSLT 파일로 표시되는 각 항목에 대해 장바구니에 추가 버튼을 만들려고합니다. 버튼은 서버 (VB)에서 실행되어야하며 요청 된 항목이 장바구니에 추가 될 수 있도록 onlick에 매개 변수를 전달해야합니다. 가능한가요, 그렇다면 어떻게해야합니까?XSLT 파일 실행 서버의 각 항목에 대해 생성 된 버튼

내가, 내가 할

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

가 나는 또한 오류를 제공하지 않습니다

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

을 시도했습니다

" 'ASP'는 선언되지 않은 네임 스페이스입니다"시도 할 때 전혀 아무것도하지 않습니다.

내 제품을 표시하기 위해 XSLT를 직접 사용해야합니다. 과제, 여기서 내가하려고하는 것은 과제의 범위를 벗어납니다.

답변

2

XSLT는 원하는 모든 것을 생성 할 수 있지만 먼저 생성하려는 것을 알아야합니다.

ASP.Net에서 CommandArgument 및 OnCommand 이벤트를 사용하여이 작업을 수행하는 것이 좋습니다.

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

그러면 단일 이벤트 핸들러가 모든 버튼 이벤트를 처리 할 수 ​​있습니다.

나는 당신이 XSLT이를 생성 할 수있는 방법을 생각하는 것이 매우 어렵다처럼 입력 XML이 어떻게 생겼는지 몰라 보는 것처럼,하지만 당신은 아마, 속성 값 템플릿을 잘 활용할 것과 같이 :

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

접두사 ASP가 정의되지 않았습니다.이 항목은 ppumkin

+0

아마 asp 접두사에 대한 네임 스페이스를 추가해야 할 것입니다. 해킹 비트이지만 유효성을 검사 할 출력을 얻을 수있는 유일한 방법입니다. – samjudson

1

XmlDataSource를 GridView 또는 Repeater와 함께 사용하는 것이 더 적절합니다. 템플릿은 XML 요소의 적절한 속성에 바인딩 된 사용자 지정 단추를 생성하는 데 사용합니까? 필요한 경우 XSLT를 사용하여 데이터를 변환 (정렬, 하위 집합 추출, 속성 선택 등) 할 수 있습니다.

관련 문제