0

我正在使用来自 www.editablegrid.net 的可编辑网格,并注意到我的网格工作得很好,只要我的表有列 id 是主键。当我在另一个以 custID 作为键的表上使用它时,它无法更新。

我哪里错了?

4

2 回答 2

0

如果您不向我们展示您的代码片段,我们将无能为力。但让我做一个疯狂的猜测。editablegrid 默认使用 ID 列。因此,如果没有名为 ID 的列,则必须定义它

该插件有一些默认设置属性,你已经玩过这些了吗?由于插件没有任何文档,脚本中也没有任何关于将列定义为主 ID 的内容,我建议您转移到更好的文档数据网格,例如http://www.datatables.net/

var props = {
        name: "",
        label: "",
        editable: true,
        renderable: true,
        datatype: "string",
        unit: null,
        precision: -1, // means that all decimals are displayed
        nansymbol: '',
        decimal_point: ',',
        thousands_separator: '.',
        unit_before_number: false,
        bar: true, // is the column to be displayed in a bar chart ? relevant only for numerical columns 
        headerRenderer: null,
        headerEditor: null,
        cellRenderer: null,
        cellEditor: null,
        cellValidators: [],
        enumProvider: null,
        optionValues: null,
        columnIndex: -1
};
于 2013-01-17T09:39:33.437 回答
0

你应该在很多地方改变它

对于 loaddata.php 中的删除操作

$grid->addColumn('action', 'Action', 'html', NULL, false, 'id');

将此更改为

$grid->addColumn('action', 'Action', 'html', NULL, false, 'yourprimarykey');

在 update.php 中(第 39 行)

if ( $stmt = $mysqli->prepare("UPDATE ".$tablename." SET ".$colname." = ? WHERE id = ?")) {

将此更改为

if ( $stmt = $mysqli->prepare("UPDATE ".$tablename." SET ".$colname." = ? WHERE yourprimarykey = ?")) {

在删除.php

if ( $stmt = $mysqli->prepare("DELETE FROM ".$tablename."  WHERE id = ?")) {

将此更改为

if ( $stmt = $mysqli->prepare("DELETE FROM ".$tablename."  WHERE yourprimarykey = ?")) {
于 2016-05-08T13:08:04.990 回答