CRUD アプリケーションで jQuery の jTable プラグインを使用しました。私の問題は、削除アイコンをクリックすると確認ダイアログが表示されますが、削除ボタンをクリックしてもダイアログが消えず、ページを手動で更新して反映されたテーブルをロードする必要があることです。
問題のスクリーンショットは次のとおりです。
ダイアログが消えなくなり、ダイアログの閉じるボタンを手動でクリックすると、次のように表示されます。
私はこの振る舞いを望んでいません。削除ボタンをクリックすると、ダイアログが消え、テーブルがリロードされます
スクリプトは次のとおりです。
<div id="StudentTable" style="width: 580px; margin: auto;"></div>
<script type="text/javascript">
$(document).ready(function () {
//Prepare jtable plugin
$('#StudentTable').jtable({
title: 'The Student List',
actions: {
listAction: '/jTableTest/StudentList',
deleteAction: '/jTableTest/DeleteStudent',
updateAction: '/jTableTest/UpdateStudent',
createAction: '/jTableTest/CreateStudent'
},
fields: {
id: {
key: true,
create: false,
edit: false,
list: false
},
name: {
title: 'Name',
width: '15%'
},
birthdate: {
title: 'Birth Date',
list: true,
width: '18%',
type: 'date',
displayFormat: 'yy-mm-dd'
}
}
});
//Load person list from server
$('#StudentTable').jtable('load');
});
</script>
削除アクションは次のとおりです。
[HttpPost]
public JsonResult DeleteStudent(int id)
{
try
{
//_personRepository.DeletePerson(personId);
student student = db.students.Find(id);
db.students.Remove(student);
db.SaveChanges();
return Json(new { Result = "OK" });
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}