2011-12-07 3 views
0

私は製品のリストを持つgridviewを持っており、これらをJavaScriptショッピングカートに追加する必要があります。 が、これは完璧に動作し、次のコードを使用する:Javascriptショッピングカートヘルプ

<a href="javascript:;" onclick="simpleCart.add('name=<%# Eval("Name") %>' , 'price=<%# Eval("Price") %>' , 'quantity=1');">Add To Cart</a> 

しかし、私はまた、私はボタンで上記の交換とのonClickとonClientClickを呼び出すのではと思ったので、製品がカートに追加されたときに、いくつかのサーバー側の機能を実行する必要がありますそのよう:

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem()" /> 
       <script type="text/javascript"> 
        function Additem() { 
         javascript: simpleCart.add('name=<%# Eval("Name") %>', 'price=<%# Eval("Price") %>', 'quantity=1'); 
        }  
    </script> 

これは、すべてのエラーを生成しませんが、JavaScriptがしかし、サーバー側のコードが正しく実行されている、(何の製品がカートに追加されていないとして)動作していないようです。

+0

アイテムがカートに追加されたら、どのようにサーバーにメッセージを送りますか? –

+0

ええ、データグリッドid ajaxが有効になっていない限り、ボタンはポストバックを引き起こします。クライアントコールは本当に無意味です。 – Zoidberg

+0

カートは完全にjavascriptで行われています。私はhttp://simplecartjs.com/から入手しました。しかし、私はまた、サーバー側の機能(データベースにアクセスする)を追加する必要があり、これを行う方法は、私はいくつかのC#を知っているので、最も簡単な方法と思われたが、asp.net/javascriptなどを完全に新しい。 – Matt

答えて

0

私はこれにonClientClickを変更しなければならなかった

<script type="text/javascript"> 
       function Additem(name, price) { 
        javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1'); 
       }  
      </script> 

Samichが上記のように提供した。

1

あなたのケースでは、大量のグローバル関数を作成しており、最新のものだけが使用されます。データにこの関数のパラメータを指定し、ページ上で一度だけ宣言します。

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem('<%# Eval("Name") %>', '<%# Eval("Price") %>')" /> 

とデータboundindの外:

変更に

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" 
    OnClientClick='<%# Eval("Name", "AddItem(\"{0}\", ").ToString() + Eval("Price", "\"{0}\")").ToString() %>' /> 

と機能へ:

  <script type="text/javascript"> 
       function Additem(name, price) { 
        javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1'); 
       }  
      </script> 
+0

あなたが最初に投稿したので、私は私の答えを削除します。 – Zoidberg

+0

次のエラーが表示されます: '/'アプリケーションのサーバーエラー。 パーサーエラー 説明:この要求を処理するために必要なリソースの解析中にエラーが発生しました。以下の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。 パーサーエラーメッセージ:サーバータグが正しく構成されていません。 – Matt

+0

属性を次のように変更してください: 'OnClientClick = '<%#" AddItem( "+ Eval(" Name ")+"、 "+ Eval(" Price ")+"); " %> '' – Samich

関連する問題