本帖最后由 hehongbo 于 2013-8-23 14:45 编辑
1.首先我们对需要做验证的字段创建约束。如图所示:
2.我们需要自定义Action,因为我们需要通过自己定义的Action来获取数据库的数据,看界面输入的相应字段是否在数据库已经存在。如图所示:
点击生成按钮,然后点击代码,编辑代码如下所示:
public static int unique(String goodname) throws Exception {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
int count =0;
try{
conn = ModelUtils.getConnection("/GO");
ContextHelper.getTransaction().begin(conn);
stat = conn.createStatement();
try {
String sqlQuery = "select count(*) as countname from GO_good where fWPMC='"+goodname+"'";
rs = stat.executeQuery(sqlQuery);
rs.next();
count=rs.getInt("countname");
} finally {
rs.close();
rs = null;
}
} finally {
stat.close();
stat = null;
conn.close();
conn = null;
}
return count;
}
3.自定义js函数,调用自定义的Action,判定返回值到底是false还是ture。
mainActivity.grdMainFNameColConstraint = function(){
/**
*
1.页面展示里面不能有重复的
2.页面展示里面有删除的,同时新增了一个和数据库有重复的,但是和数据库重复的数据 已经在前台删掉了
3.和数据库不能有重复的
*
**/
var f=true;
var currentValue = justep.xbl('dataMain').getValue("fWPMC");
var length=justep.xbl('dataMain').find(["fWPMC"],[currentValue]).length;
var params = new justep.Request.ActionParam();
params.setString("goodname",currentValue);
if(length > 1){
f=false;
}else if(length==1){
justep.Request.sendBizRequest2({
dataType: "application/json",
action: "uniqueAction",
parameters: params,
callback: function(result) {
if (result.state) {
if(result.response==0)
{
f=true;
}else if(result.response==1)//理论上只有1条数据是重复的
{
if(justep.xbl('dataMain').getState(justep.xbl('dataMain').getID())=='none')
{
f=true;
} else if(justep.xbl('dataMain').getState(justep.xbl('dataMain').getID())=='new'||justep.xbl('dataMain').getState(justep.xbl('dataMain').getID())=='edit')
{
var deleteRowIds =justep.xbl('dataMain').getChangedIDs(justep.XData.STATE.DELETE,",");//得到grid中已经删除的ID.
if(deleteRowIds!=undefined&&deleteRowIds!=""){
if(deleteRowIds.indexOf(justep.xbl('dataMain').getID())!=-1){//判断当前新增或者修改的数据所在ID是否包含在删除的ID中,防止主键重复。
f=false;
}else {
f=true;
}
}
else
{
f=true;
}
}
}
else
{
justep.Request.errorMessage(null, "数据库中有重复的记录,并且不是期望的结果数量(期望记录数:1条)",null,null);
f=false;
}
} else {
justep.Request.errorMessage(result, "查询数据失败!",result.url,result.param);
f=false;
}
}
});
return f;
}
};
|