在MVC后台代码中想实现删除时d出"确认删除"效果,该怎么写、

在MVC后台代码中想实现删除时d出"确认删除"效果,该怎么写、,第1张

@Html.ActionLink("删除", "Delete", new { id = item.id})

Html.ActionLink 添加htmlAttribute的参数,上面的ActionLink可以这样写:

@Html.ActionLink("删除", "Delete", new { id = item.id}, new { onclick = "confirm('你确认删除吗?')" })

本系统是在网络上建立一个Web系统专门提供通讯簿管理功能,以便随时随地通过网络对通讯簿进行管理,可以更快速便捷的查找信息,查找快速,维护方便,丢失手机也不会丢失联系方式。本系统主要功能是能够对联系人的增加删除,并可以对其发送信息,构建一个聊天室,设立群组,方便更好的沟通。本系统的开发使用的是MVC模式,主要开发环境是MyEclipse。前台页面的的编写主要使用JSP技术,页面的美化主要使用CSS和Bootstrap,其中Bootstrap主要来美化表格、表单。

用户点击登录输入账号和密码,系统进行验证,如果确认信息没有错误,则成功登录,用户可以查询个人信息,可以添加和删除好友,管理用户信息,用户与用户之间可以互相发送信息;管理员登录也需要系统验证,成功登录后可以修改管理员信息,还可以添加普通用户

我会将在编写过程中出现的一些小知识点也进行总结概括的。

此项目基于的框架是:springmvc+mybatis

(1)controller

/**

* 批量删除 batch

*/

@RequestMapping("/batchDeletes")

@ResponseBody

public void batchDeletes(HttpServletRequest request,HttpServletResponse response){

String items = request.getParameter("delitems")

List<String>delList = new ArrayList<String>()

String[] strs = items.split(",")

for (String str : strs) {

delList.add(str)

}

userService.batchDeletes(delList)

}

代码思路:

从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。

(2)service

/**

* 批量删除

*/

void batchDeletes(List delList)

(3)impl

/**

* 批量删除

*/

@Override

public void batchDeletes(List delList) {

userMapper.batchDeletes(delList)

}

(4)mapper

/**

* 批量删除

*/

void batchDeletes(List delList)

(5)mapper.xml

<!--批量删除 -->

<delete id="batchDeletes" parameterType="java.util.List">

DELETE FROM tp_user where uname in

<foreach collection="list" index="index" item="item" open="(" separator="," close=")">

#{item}

</foreach>

</delete>

如上的mybatis指代的意思如下:

foreach元素的属性主要有 item,index,collection,open,separator,close。

item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)

index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.

open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.

close表示以什么结束.

前台代码:

user_list.jsp

//全选

function selectAll(){

if ($("#SelectAll").is(":checked")) {

$(":checkbox").prop("checked", true)//所有选择框都选中

} else {

$(":checkbox").prop("checked", false)

}

}

//批量删除

function batchDeletes(){

//判断至少写了一项

var checkedNum = $("input[name='subcheck']:checked").length

if(checkedNum==0){

alert("请至少选择一项!")

return false

}

if(confirm("确定删除所选项目?")){

var checkedList = new Array()

$("input[name='subcheck']:checked").each(function(){

checkedList.push($(this).val())

})

$.ajax({

type:"POST",

url:"web/user/batchDeletes.action",

data:{"delitems":checkedList.toString()},

datatype:"html",

success:function(data){

$("[name='checkbox2']:checkbox").attr("checked",false)

art.dialog.tips('删除成功!')

setTimeout("location.reload()",1000)//页面刷新

},

error:function(data){

art.dialog.tips('删除失败!')

}

})

}

}

<table class="tb_list">

<tr>

<td align="center"><input type="checkbox" id="SelectAll"

onclick="selectAll()" />全选</td>

<th>序号</th>

</tr>

<c:forEach items="${page.list }" var="items" varStatus="idx">

<tr class="row_${idx.count%2+1}">

<td style="display:none">${batch.id}</td>

<td align="center"><input type="checkbox" id="subcheck"

name="subcheck" value="${items.UNAME }" />

</td>

<td>${page.onePageCount*(page.currentPage-1)+idx.count }</td>

<tr>

</table>

备注:此代码我传值的主键是用uname来删除的,实际应该用id作为主键,因为id的unique

,uname若重名,则就会出现bug,相信大家都明白,就不再过多解释了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11796799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存