Требуется помощь в корзине Javascript - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть сетка со списком продуктов, и я должен добавить их в корзину покупок 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, похоже, не работает (так как продукты не добавляются в корзину), однако серверный код выполняется правильно.

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

В вашем случае вы создаете много глобальных функций, и будет использоваться только последняя. Предоставьте свои данные с параметрами этой функции и объявите их только один раз на странице.

Изменить на:

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

и за пределами границ данных:

            <script type="text/javascript">
                function Additem(name, price) {
                    javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1');
                }    
            </script> 
0 голосов
/ 08 декабря 2011

Мне пришлось изменить 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> 

Как Самич предоставил выше.

...