2018-07-27 16:01题主

应该在哪里添加代码,针对 USER_ID 进行 #sys.getID 之类系统提供API功能,来进行USER_ID 主键的赋值?

if (!Wb.verifyGrid(app.grid1))
  return;
Wb.sync({
  grid: app.grid1,
  url: 'm?xwl=demo/mydemo_crud/crud-db-access/simple-wb_user-save', 
  message: '正在保存中...',
  success: function(resp) {
    app.store.commitChanges(); //如果存在多个store可以设置normalName属性或通过app.grid.store方式找到store对象
    Wb.toast('已经成功保存数据。');
  }
});
这段是 saveBtn的点击事件代码,执行时报错:主键USER_ID 不能为空;
 
 
没有 发现应该在哪里添加代码,针对 USER_ID 进行 #sys.getID 之类系统提供API功能,来进行USER_ID 主键的赋值?
  
2018-07-27 17:50#1
发现问题出在哪里了:
 针对 wb-user_save模块的 ServerScript片段大概如下:
 
var id, ids = [],
  recs = Wb.decode(request.getParameter('create')); //create参数为新添加的记录数组
Wb.each(recs, function(rec) {
  id = SysUtil.getId();
  rec.USER_ID = id; //设置id值
  rec.PASSWORD = Encrypter.getMD5("123456");
  rec.STATUS = "1";
  ids.push({ //把id添加到列表中用于返回给前台
    USER_ID: id
  });
});
request.setAttribute('create', Wb.encode(recs)); //重置create参数
app.update({
  tableName: 'WB_USER'
});
app.send(ids); //把id列表发送到客户端以同步到表格
//app.send({create:createRows,update:updatedRows,otherParams:params});//如果需要同时同步新建和修改的记录以及其他参数
 
测试了一下,可以顺利运行,以及保存新增的几行新增用户数据!
2018-07-30 09:35#2
WebBuilder的示例演示了不同方式进行增删改查,包括批量更新,可编辑表格更新,表单更新等方式
具体你应该根据业务需求来设计具有良好用户体验的界面

返回开发者社区