リスト項目を含むグリッドがあります。選択した特定のアイテムを削除するオプションがあります。しかし、私には問題があります。
複数のアイテムがある場合、それらを削除するとすべて消えてしまいます。しかし、アイテムが 1 つ残っていて、それを削除すると、ストアド プロシージャが実行され、すべてが削除されます。しかし、視覚的にリスト項目はまだそこにあります。ただし、ページを更新すると消えてしまいます。
削除後に他のものと同じように消える必要があります。ここには 2 つの機能があります。1 つは、削除と更新です。もう 1 つは更新コードです。
これが私のグリッドです:
$('#viewExpensesGrid').flexigrid({
url: url,
dataType: 'json',
method: 'get',
colModel: [
{ display: '<input type="ch etc etc other parts of table like id, name etc
これが私の削除です:
function doTheDelete(doIDeleteExpenses) {
var selectedExpensesList = getSelectedExpenseIDs();
if (selectedExpensesList.length > 0) {
$.ajax({
type: "POST",
//url: "/Tasks/ViewTasks.aspx/deleteTasksAndLinkedItems",
url: '<%=ResolveUrl("~/Expenses/ViewExpenses.aspx/deleteSelectedExpense")%>',
data: "{'DeleteExpenses' : '" + doIDeleteExpenses + "'," + "'ExpID': ['" + selectedExpensesList.join(',') + "']}",
//dataaaaaa
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var ss = data.d;
if (ss.length > 0) {
for (var i = 0; i < ss.length; ++i) {
$.noty.consumeAlert({ layout: 'center', type: 'error', dismissQueue: true });
alert(ss[i]);
}
}
$("#viewExpensesGrid").flexReload(); //this reloads the grid but doesnt gets rid of the last item.
},
更新コードは次のとおりです。
$.fn.flexReload = function (p) { // function to reload grid
return this.each(function () {
if (this.grid && this.p.url) this.grid.populate();
});