我试图在ajax调用成功后从数据表中删除一行。表中的行代表用户“接受”或“拒绝”的事件。
DataTable是使用asp:Repeater创建的
<table id="dtTriage">
<tbody id="tbodyT">
<asp:Repeater ID="rptT" runat="server">
<ItemTemplate>
<tr class="odd gradeX" id='raw<%#Eval("eventId") %>'>
<td class="td-triage">
[...]
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
然后在由接受或拒绝按钮触发的函数中,我这样进行ajax调用:
var dtTriage = $('#dtTriage').DataTable();
var row = $('#dtTriage tbody tr[id=raw' + eventId + ']')[0];
$.ajax({
url: '<%=ResolveUrl("~/User/Services/WebServices.asmx/SaveEventPreferences") %>',
data: params,
dataType: "json",
type: "POST",
contentType: "application/json;",
success: function (message) {
dtTriage.fnDeleteRow(row, null, true);
}
});
现在,如果用户按下按钮一次,此方法就可以正常工作;但是,如果他在ajax调用返回成功之前按了多次,则该行以及该行下方的行将被删除(与您按的次数相同);我对发生这种情况的原因感到困惑:我删除了该特定行(通过其eventId)。
任何澄清将不胜感激,
谢谢