2011-12-07 64 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阿賈克斯啓用,客戶端調用是真的毫無意義。 – Zoidberg

+0

購物車完全在JavaScript中完成,我從http://simplecartjs.com/獲得。但我也需要添加服務器端功能(訪問數據庫),並且這樣做似乎是最簡單的方法,因爲我知道一些C#但是對於asp.net/javascript等是全新的。 – Matt

回答

0

我只好到的OnClientClick改成這樣:

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

正如Samich在上面提供的。

1

在你的情況下,你正在創建許多全局函數,它將只用於最新的一個。提供帶有參數的數據並在頁面上聲明一次。

更改爲:

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

和數據boundind之外:

  <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