好的,所以我有这个中继器:
<asp:Repeater runat="server" ID="rep" >
<ItemTemplate>
<tr>
<td>
<div id="resultDiv">
click me
</div>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
我有这个 jquery ajax 调用:
$(document).ready(function () {
$("#resultDiv").click(function () {
$.ajax({
type: "POST",
url: "Page.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#resultDiv").text(msg.d);
}
});
});
});
问题是这只适用于中继器内的第一个 div。如果我单击任何其他 div,则不会触发 click 事件。我知道这是因为它们都有相同的 id,即“resultDiv”。
我现在正在寻找一种为他们提供唯一 ID 的方法,我可以这样做:(在中继器 itemtemplate 内)
<td>
<div id="resultDiv_<%#Eval("divId") %>">
click me
</div>
这为转发器内的所有 div 提供了唯一的 ID,但是这样 ajax 点击事件不再触发,因为
$("#resultDiv").click(function () {
resultDiv
现在类似于resultDiv_1
or resultDiv_2
。
所以我正在寻找一些东西来将点击事件绑定到转发器内的每个 div。我尝试在 ajax 调用中这样做:
$("#<%#Eval("divId") %>").click(function ()
但这不起作用,并给了我各种错误。
我有什么办法可以做到这一点?请不要说我不想使用更新面板。