ダッシュボードで作業中で、gridStackを使用しています。データベースをajaxで更新しています。データは、html要素のx、y位置です(ページ上のいくつかのdiv)。ここに私のjavascriptのコードは次のとおりです。Asp.net OnClickイベントは、ajaxが何度も呼び出された後にトリガされません。
// The "dragstop" fucntion is called when I stop dragging the <div> element.
$(".grid-stack").on("dragstop", function() {
setTimeout(function() {
saveAllWidgets();
}, 100);
});
function saveAllWidgets() {
var serializedData = _.map($('.grid-stack > .grid-stack-item:visible'), function (el) {
el = $(el);
var id = el.attr('id');
var node = el.data('_gridstack_node');
return {
x: node.x,
y: node.y,
width: node.width,
height: node.height,
id: id
};
});
var jsonString = JSON.stringify(serializedData);
try {
$.ajax({
type: "POST",
url: '/STARCOHttpHandlers/UpdateDashboardWidget.ashx',
contentType: "application/json; charset=utf-8",
data: jsonString,
dataType: "json",
success: function(data){
//I am always getting the success response and I checked DB is also updating
console.log(data);
},
error: function(){
console.log("some error occoured db is not updated!!");
}
});
} catch (e) {
alert(e);
}
}
私は(あまりにも多くのドラッグ/ドロップ)あまりにも頻繁に上記の関数を呼び出す場合さて、問題があります。また、以下のasp.netボタンをクリックすると、ページがリロードされますが、OnClickイベントはトリガーされません(デバッグモードでも、コードはまったく呼び出されません)。 Pageがリロードされた後、このボタンでもう一度クリックすると、onClickイベントがトリガーされます。
<asp:Button runat="server" ID="btnUndoChanges" CssClass="btn" Text="Undo all changes" OnClick="btnUndoChanges_OnClick"/>
protected void btnUndoChanges_OnClick(object sender, EventArgs e)
{
return;
}
なぜこのように動作するのかわかりません。それはIISのセキュリティやビューステートに関連していますか?