Closed yiqing-95 closed 5 years ago
感谢作者解答
对内容太多情况的解答 直接给table配置 Scroll - horizontal
var m = meTables({
title: "项目进度管理",
number: false,
pk: "projectid",
table: {
"scrollX": true, // !!! 看这里
columns: [
...
多表join问题 在控制器里面 :
对于join 重写 控制的 getQuery 就好了
表单自定义问题 :
可以参考 角色管理 自己监听按钮点击事件 弹出layer对话框
至此 基本可能碰到的复杂场景都有方案 感谢作者 开源的奉献 👍
预留的自定义处理修改和编辑前置方法beforeSave 可以满足需求, 传递给 beforeSave() 的参数 是表单 serializeArray() 后的数据,是一个数组,因为 js 对对象和数组都是引用传参,所以你函数内部修改数据,会影响函数外部,至于返回可有可无,我的逻辑是只要你不返回false 终止执行,其他返回或者不返回,都是继续执行
beforeSave: function (data) {
// 需要注意追加数据的格式 "anyKey":"someAdditionalValue"
data.push({value: "someAdditionalValue", name: "anyKey"});
}
依赖这两个插件,但只是添加了一些预定义配置,附加一些常见操作和处理,并没有隐藏原有API;
好的 感谢回复! 我在push的时候 对推入元素的格式没注意:
data.push( { name: "anyKey", value: "anyValue" } )
而不是:
data.push({ "anyKey":"someAdditionalValue" });
其他 jquery.datable 的其他插件都可以使用,只是 datatable-editor 样式有点丑,当初没有用!其他插件的话一般样式都要自己去处理了
逃生通道: 后台功能主要依赖了 dataTable jqGrid 在这两个组件上面做封装 一般api设计的时候 当自身api不足于满足苛刻需求时候 会提供一个特殊通道把底层的功能暴露出来 换言之也就是 自己的api不能把底层的功能给掩盖了 比如yii的db组件 除了自己做的一些额外功能外 还可以暴露底层的Pdo对象: [Yii::$app->db->getXxxPdo()](https://www.yiiframework.com/doc/api/2.0/yii-db-connection#getMasterPdo()-detail) 这个思想就是一个引子 其实我想说其他的东西 😃
就当讨论了 看着玩也行 ^_^
当表数据太多时 表格会把内容撑爆 (可能方案是 把一些无关紧要的列隐藏掉 或者可以出现左右滚动效果)
针对创建表单 表单是根据 table中 columns的配置构造的 也就是说列跟创建表单有比较严格的对应关系 这点能满足大部分需求 如果出现适配现象 比如表格中的列 跟表单差异比较大 创建记录时需要一大堆的输入 此时是不是很多列在table配置时要隐藏了?
修改表单 差不多一样的考虑
创建表单|修改表单 需要更大的自由性 可以自己随便布局 datatable-editor 自定义的editor是否也可以用?(当然是在底层采用dataTable策略时) 还在降级到 可以自己覆盖 meGrid.create|update 方法 自己用layer加载一个随意长相的表单 在表单提交完毕后 触发myGrid对象的refresh方法 可否给些建议?我的模型确实相当复杂:)
还有针对复杂的模型关系 比如一对一 join情形 有什么好的建议 也需要显示在table中 在yii的ActiveRecord::toArray 考虑中 请求可以通过附加额外参数来加载关系对象的数据:[extraFields](https://www.yiiframework.com/doc/api/2.0/yii-base-arrayabletrait#extraFields()-detail)
在发送表单数据前 可以留个钩子串改post-data 比如
beforeSave: function(data) { data.push({ "anyKey":"someAdditionalValue" }); console.log(data) ; return true; // return data ; // 可以返回修改过的数据 },
以上就是一些考虑罢了 这个项目还是很不错的 服务端很轻松 特别是在业务简单的情况下 表关系又比较单纯 基本只需要生个AR出来 就没啥事了
如果能提供对复杂用例的 逃生出口 就更好了 . 👍
如果能qq聊更好 没事一起扯扯淡 联系qq: 61391362 😄