1

現在、編集可能な列を持つ 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 変数に渡されることに注意してください。値で常に渡されるのは、ユーザーが入力した新しい値ではなく、常に元の値です。

これを回避する方法はありますか?

ありがとう - どんな助けでも大歓迎です!

4

1 に答える 1