Ошибка тега сервера при передаче параметров в javascript из gridview - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть вид сетки, и мне нужно передать два параметра в функцию JavaScript при нажатии кнопки в виде сетки. Сценарий следующий:

<script type="text/javascript">
        function AddItem(name,price) {

            javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1');
        }    
    </script>

В сетке я попытался передать параметры следующим образом:

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

Но получен «Ошибка тега сервера неправильно сформирована».

Я тоже так пытался:

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

Но, похоже, функция Eval допускает передачу только 1 параметра.

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" 
     OnClientClick='<%# Eval("Name", "AddItem(\"{0}\", ").ToString() + Eval("Price", "\"{0}\")").ToString() %>' />
1 голос
/ 08 декабря 2011

Попробуйте изменить это на:

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

или это также может работать

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

использование кавычек внутри атрибутов элемента управления сервера нарушает процесс компиляции, поскольку он не может определить, где заканчивается атрибут. Вы можете использовать апострофы (1-й пример) или экранировать кавычки (2-й пример)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...