在数据表重绘上初始化X-editable

时间:2016-03-26 18:45:40

标签: jquery datatables x-editable

当用户请求新数据时,我有一个重绘的数据表。例如,它可以显示所有成员,然后当用户单击按钮时,表格被重新绘制以仅显示过期成员。

我正在使用x-editable来编辑出现在数据表单元格内的字段。我让它在初始绘制时工作得很好,但是当重绘表时我无法进行x-editable。

以下是我的尝试:

1):使用draw.dt事件 -

 $('#memberTable').on( 'draw.dt', function () {
        showEditable();  
        // continue with other things that are initialized on draw.dt all of which work
  });

  function showEditable(){
        $('.testX a').editable({
        type: 'text',
        pk:  function () {
            return $(this).closest("td").data("id");
        },
        url: '/update_task/',
        title: 'Edit Term'
    });
};

2):drawCallBack直接在数据表初始化

  $('#memberTable').dataTable({
    columnDefs: [{ searchable: false, targets: 3 }],
    processing: true,
    pageLength: 20,
    lengthMenu: [[10, 20, 50, -1], [10, 20, 50, 'All']],
    drawCallback: function( settings ) {
        $('.testX a').editable({
        type: 'text',
        pk:  function () {
            return $(this).closest("td").data("id");
        },
        url: '/test',
        title: 'Edit'
    });
    alert( 'DataTables has redrawn the table' );
}
});

任何人都可以看到我缺少在数据表重绘上进行x-editable工作? TIA。

1 个答案:

答案 0 :(得分:0)

以下解决方案帮助了我:

public class ExampleHandler2 implements RequestHandler<String, Speech> {

    public static class Speech {
        private String speech;
        public String getSpeech() {
            return speech;
        }
        public void setSpeech(String speech) {
            this.speech = speech;
        }
    }

    @Override
    public Speech handleRequest(String input, Context context) {
        Speech speech = new Speech();
        speech.setSpeech("hello theres");
        return speech;
    }
}