現在、編集可能な列を持つ DataTable の作成に取り組んでいます。私が見つけた最良の例は、DataTables 自身の Web サイトにあります: http://www.datatables.net/release-datatables/examples/api/editable.html。
私が今持っている唯一の問題を除いて、すべてが完全に機能します。ユーザーが入力した新しい値を何らかの方法でキャプチャし、onblur で新しい値をサーバー側に送信することです。送信される値は常に元の値であり、ユーザーが入力した新しい値ではありません。 注: サーバー側で新しい値を取得する handler.ashx ハンドラーを使用します。
DataTable を表示するコードは次のとおりです。
$(document).ready(function() {
var oTable = $('#example').dataTable({
"sAjaxSource": "displayTable.ashx",
"aoColumns": [
{ "sTitle": "examCode"},
{ "sTitle": "division" },
],
"fnDrawCallback": function() {
$('td').editable( 'handler.ashx', {
"submitdata": function ( value, settings ) {
return {
examCode: $(this).parent().find(":first").text(),
columnPosition: oTable.fnGetPosition( this )[2],
newValue: value
};
},
onblur : "submit",
} );
}
});
});
handler.ashx のコードは次のとおりです。
public class Handler : IHttpHandler {
public string editExamCode(HttpContext context)
{
String newValue = context.Request.Form.Get("newValue");
}
}
onblur を「送信」すると、値が newValue 変数に渡されることに注意してください。値で常に渡されるのは、ユーザーが入力した新しい値ではなく、常に元の値です。
これを回避する方法はありますか?
ありがとう - どんな助けでも大歓迎です!