使用jQuery DataTables可编辑以编辑多个值

时间:2012-03-13 10:16:33

标签: jquery jquery-plugins datatables

我正在使用jQuery DataTables Editable来编辑表格中的数据。

表格如下:

enter image description here

正如您所看到的,我有一个包含多个值的列,在单击此列时,我希望能够编辑所有字段,如下所示:

enter image description here

是否可以自定义jQuery DataTables Editable来处理这样的多个值?我没有找到任何例子,也许你可以指出我正确的方向?

1 个答案:

答案 0 :(得分:0)

要做到这一点,你应该提供正确的标记。例如,你可以做这样的事情

HTML

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
    <thead>
      <tr>
        <th>Rendering engine</th>

        <th>Browser</th>

        <th>Platform(s)</th>

        <th>Engine version</th>

        <th>CSS grade</th>
      </tr>
    </thead>

    <tbody>
      <tr id="1" class="gradeX">
        <td>Trident</td>

        <td>Internet Explorer 4.0</td>

        <td>Win 95+</td>

        <td class="center">4</td>

        <td class="center">
              <div class='editable'>line 1</div>
              <div class='editable'>Line 2</div>
          </td>
      </tr>

      <tr id="2" class="gradeC">
        <td>Trident</td>

        <td>Internet Explorer 5.0</td>

        <td>Win 95+</td>

        <td class="center">5</td>

        <td class="center">              
            <div class='editable'>line 1</div>
            <div class='editable'>Line 2</div>
          </td>
      </tr>

      <tr id="3" class="gradeA">
        <td>Trident</td>

        <td>Internet Explorer 5.5</td>

        <td>Win 95+</td>

        <td class="center">5.5</td>

          <td class="center">
              <div class='editable'>line 1</div>
              <div class='editable'>Line 2</div>
          </td>
      </tr>
    </tbody>
  </table>

JS

var oTable = $('#example').dataTable();
$('td div.editable', oTable).editable('../examples_support/editable_ajax.php', {
    "callback": function(sValue, y) {
        var aPos = oTable.fnGetPosition(this);
        oTable.fnUpdate(sValue, aPos[0], aPos[1]);
    },
    "submitdata": function(value, settings) {
        return {
            "row_id": this.parentNode.getAttribute('id'),
            "column": oTable.fnGetPosition(this)[2]
        };
    },
    "height": "14px",
    "width": "100%"
});

请注意,只有最后一列是可编辑的,我使用了两个<div>并选择了$('td div.editable',oTable)

小提琴http://jsfiddle.net/GhgLW/2/