#启用/禁用
#ProjectDao
/**
* 禁用或启用项目信息
* */
int validById(
@Param("valid")Integer valid,
@Param("ids")String[] ids);
##ProjectMapper.xml
<!-- 禁用或启用项目信息
valid 表示状态值
ids对应dao层方法中的数组参数
-->
<update id="validById">
update tms_projects
set valid=#{valid}
where id in
<!-- 通过动态sql拼接(1,2,3,4)这样格式的数据 -->
<foreach collection="ids"
open="("
close=")"
item="item"
separator=",">
#{item} <!-- ids中的一个元素 -->
</foreach>
</update>
##ProjectService及其实现类
/**
* @param valid 状态
* @param ids 由多个id构成的字符串
*/
void validById(Integer valid,String ids);//"1,2,3,4";
//实现类
@Override
public void validById(Integer valid, String ids) {
//1.对数据进行业务验证
if(valid!=0&&valid!=1)
throw new ServiceException("valid的值不合法:valid="+valid);
if(StringUtils.isEmpty(ids))
throw new ServiceException("ids 的值不能为空");
//2.对参数数据进行处理
String[] idArray=ids.split(",");
//3.执行业务更新操作
int rows=projectDao.validById(valid, idArray);
//4.验证结果的有效性
if(rows==0)
throw new ServiceException("修改失败");
}
##ProjectController
/**禁用或启用项目信息*/
@RequestMapping("doValidById")
@ResponseBody
public void doValidById(Integer valid,
String ids){
projectService.validById(valid, ids);
}
##页面Js代码
$(document).ready(function(){
//在查询按钮上注册点击事件
$("#queryFormId")
.on("click",".btn-search",doQueryObjects)
.on("click",".btn-valid,.btn-invalid",doValidById)
//页面加载完成执行数据的获取操作
doGetObjects();
})
/*禁用或启用项目信息*/
function doValidById(){//valid,ids
//1.设置valid的值
var valid;
//1.1获得点击的button对象,根据点击对象的不同设置不同的valid
/*var clazz=$(this).attr("class");
if(clazz=="btn btn-primary btn-valid"){
valid=1;
}*/
if($(this).hasClass("btn-valid")){
valid=1;//启用
}
if($(this).hasClass("btn-invalid")){
valid=0;//禁用
}
//2.获得选中的checkbox的id值
var ids="";//1,2,3,4
$("#tbodyId input[name='checkId']")//迭代input对象
.each(function(){//each函数用于迭代一个数组
if($(this).prop("checked")){//判定此input对象是否是选中的
if(ids==""){
ids+=$(this).val();
}else{
ids+=","+$(this).val();
}
}
});
//console.log("valid="+valid);
//console.log("ids="+ids);
if(ids==""){
alert("请至少选择一个");
return;
}
//3.发起异步请求,更新数据
var url="project/doValidById.do";
var params={
"valid":valid,
"ids":ids
}
$.post(url,params,function(){
//重新执行查询操作
doGetObjects();
})
}
/*点击查询按钮时执行此方法*/
function doQueryObjects(){
//1.初始化当前页码数据
$("#pageId").data("pageCurrent",1);
//2.根据条件查询数据
doGetObjects();
}
/*获取项目信息*/
function doGetObjects(){
//var url="project/doGetObjects.do";
/*$.ajax({
url:url,
type:"get",
dataType:"json",
success:function(result){
}
});*/
var url="project/doGetPageObjects.do"
var pageCurrent=$("#pageId").data("pageCurrent");
if(!pageCurrent)pageCurrent=1;//默认取第一页的数据
var params={"pageCurrent":pageCurrent};
//获得表单数据,并将其添加到params对象
params.name=$("#searchNameId").val();
params.valid=$("#searchValidId").val();
console.log(params);//检测一下向服务端传递的数据
//发起异步请求获取服务端数据
$.getJSON(url,params,function(result){//callback method
//console.log(result);//json对象
//将数据显示在table的tbody位置
setTableBodyRows(result.list);//map中的key对应的值
//设置分页信息(函数定义在了page.js文件中)
setPagination(result.pageObject);
});
}
/*将数据填充在table对象的body中*/
function setTableBodyRows(data){//扩展作业
//1.获得tbody对象
var tBody=$("#tbodyId");
tBody.empty();
//2.迭代数据集result
//for(var i=0;i<result.length;i++){}
for(var i in data){
//2.1构建一个tr对象
var tr=$("<tr></tr>");
//2.2构建每行td对象(一行有多个)
//var td0=$("<td></td>");
//....
//2.3在td对象内容填充具体数据
//td0.append(result[id].id);
//....
var tds="<td><input type='checkbox' name='checkId' value='"+data[i].id+"'></td>"+
"<td>"+data[i].code+"</td>"+
"<td>"+data[i].name+"</td>"+
"<td>"+data[i].beginDate+"</td>"+
"<td>"+data[i].endDate+"</td>"+
"<td>"+(data[i].valid?"有效":"无效")+"</td>"+
"<td><input type='button' class='btn btn-default' value='修改'/></td>";
//2.4将td添加到tr对象中(一行要放多个)
tr.append(tds);
//2.5将tr追加到tbody中
tBody.append(tr);
}
}