我正在使用来自 www.editablegrid.net 的可编辑网格,并注意到我的网格工作得很好,只要我的表有列 id 是主键。当我在另一个以 custID 作为键的表上使用它时,它无法更新。
我哪里错了?
如果您不向我们展示您的代码片段,我们将无能为力。但让我做一个疯狂的猜测。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
};
你应该在很多地方改变它
对于 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 = ?")) {