#c# #asp.net #repeater
#c# #asp.net #повторитель
Вопрос:
Я использую таблицу внутри повторителя. В принципе, я хочу передать, чтобы передать данные из источника данных SQL и передать их функции на стороне сервера, используя привязочный тег.
<td>
<%# Eval("Quantity")%> in stock<br />
<input class="textbox" maxlength="2" name="Quantity" size="2" type="text"
value="1" />
<br />
<div class="buttons">
<a id="A1" class="positive" runat="server" onserverclick="addtocart(<%# Eval("ProductDescriptionId")%>,<%# Eval("Quantity")%>
Add to Cart
</a>
</div>
Именно по этой гиперссылке я хочу передать параметры.
<a id="A1" class="positive" runat="server" onserverclick="addtocart(<%# Eval("ProductDescriptionId")%>,<%# Eval("Quantity")%>Add to Cart</a>
Комментарии:
1. Что теперь отображается? Похоже, что ссылка неправильно отформатирована.
2. да, он неправильно отформатирован. Тег сервера сформирован неправильно.
3. Вы пропускаете
)">
в конце ссылки4. можете ли вы просто попробовать вот так onserverclick=»addtocart(<%# Eval(‘ProductDescriptionId’)%>,<%# Eval(‘Quantity’)%>)»
Ответ №1:
Ссылка, вероятно, должна выглядеть следующим образом:
<a id="A1"
class="positive"
runat="server"
onserverclick='addtocart(<%# Eval("ProductDescriptionId")%>,<%# Eval("Quantity")%>)'>
Add to Cart
</a>
Комментарии:
1. извините, это была опечатка .. тег сервера сформирован неправильно …. что означает, что что-то не так
2. В таком случае, я думаю, это потому, что вы заключаете выражение в
"
, в то время как само выражение содержит"
. Обычно это проблема. Вместо этого используйте'
для вложения выражения.3. я получаю эту ошибку CS1040: директивы препроцессора должны отображаться как первый непробельный символ в строке
4. Используете ли вы элемент управления с привязкой к базе данных? Вы не можете использовать,
<%# .. %>
если вы не находитесь внутриItemTemplate
элемента управления, связанного с базой данных, такого какRepeater
илиGridView
.