实例:SSH结合Easyui实现Datagrid的批量删除功能

在我先前的基础上面添加批量删除功能。实现的效果如下

删除成功

通常情况下删除不应该真正删除,而是应该有一个标志flag,但flag=true表示状态可见,但flag=false表示状态不可见,为删除状态。便于日后数据库的维护和信息的查询。因此表结构添加一个flag字段

没有改变的代码这里就不写了,发生改变的代码贴出来

1、因为表结构发生变化。所以对应的Student.java和Student.hbm.xml发生改变

[java] view plaincopy

  1. package com.model;
  2. public class Student {
  3. String studentid;// 主键
  4. String name;// 姓名
  5. String gender;// 性别
  6. String age;// 年龄
  7. String flag;//标志
  8. public String getStudentid() {
  9. return studentid;
  10. }
  11. public void setStudentid(String studentid) {
  12. this.studentid = studentid;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getGender() {
  21. return gender;
  22. }
  23. public void setGender(String gender) {
  24. this.gender = gender;
  25. }
  26. public String getAge() {
  27. return age;
  28. }
  29. public void setAge(String age) {
  30. this.age = age;
  31. }
  32. public String getFlag() {
  33. return flag;
  34. }
  35. public void setFlag(String flag) {
  36. this.flag = flag;
  37. }
  38. }

Student.hbm.xml的代码

[html] view plaincopy

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!-- Generated 2013-6-23 23:31:47 by Hibernate Tools 3.4.0.CR1 -->
  5. <hibernate-mapping>
  6. <class name="com.model.Student" table="STUDENT">
  7. <id name="studentid" type="java.lang.String">
  8. <column name="STUDENTID" />
  9. <generator class="assigned" />
  10. </id>
  11. <property name="name" type="java.lang.String">
  12. <column name="NAME" />
  13. </property>
  14. <property name="gender" type="java.lang.String">
  15. <column name="GENDER" />
  16. </property>
  17. <property name="age" type="java.lang.String">
  18. <column name="AGE" />
  19. </property>
  20. <property name="flag" type="java.lang.String">
  21. <column name="FLAG" />
  22. </property>
  23. </class>
  24. </hibernate-mapping>

2、对应的Action。StudentAction

[java] view plaincopy

  1. package com.action;
  2. import java.io.PrintWriter;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import net.sf.json.JSONObject;
  8. import org.apache.log4j.Logger;
  9. import org.apache.struts2.ServletActionContext;
  10. import com.model.Student;
  11. import com.service.StudentService;
  12. public class StudentAction {
  13. static Logger log = Logger.getLogger(StudentAction.class);
  14. private JSONObject jsonObj;
  15. private String rows;// 每页显示的记录数
  16. private String page;// 当前第几页
  17. private StudentService student_services;//String依赖注入
  18. private Student student;//学生
  19. private String parameter;//参数
  20. private String table;//表名
  21. private String field;//字段
  22. private String num;//
  23. private String ids;//
  24. //查询出所有学生信息
  25. public String allInfo() throws Exception {
  26. log.info("查询出所有学生信息");  //引用到log4j你应该加入  log4j的配置文件,不然用System.out.println();来替换
  27. List list = student_services.getStudentList(page, rows);//传入参数页码和行数,获取当前页的数据
  28. this.toBeJson(list,student_services.getStudentTotal());//调用自己写的toBeJson方法转化为JSon格式
  29. return null;
  30. }
  31. //批量删除信息
  32. public String del() throws Exception{
  33. log.info("删除学生信息");
  34. log.info("循环次数:"+num);
  35. List list=new ArrayList();
  36. Boolean b=false;
  37. int temp=Integer.parseInt(num);//循环次数
  38. int j=0;
  39. for (int i = 0; i < temp; i++) {
  40. list.add(ids.substring(j, j+3));//将一个字符串打散成多个字符串
  41. j=j+4;
  42. log.info("==========="+list.get(i));
  43. student_services.deleteStudent((String) list.get(i));//根据ID主键进行删除操作
  44. }
  45. return null;
  46. }
  47. //新增学生信息
  48. public String add() throws Exception{
  49. log.info("新增学生信息");
  50. student_services.saveStudent(student);
  51. return null;
  52. }
  53. //查询唯一性
  54. public String verify() throws Exception{
  55. log.info("ACTION验证唯一性");
  56. String s = student_services.queryBy_unique(table,field ,parameter);
  57. log.info("结果:" + s);
  58. //将验证的结果返回JSP页面,s为1代表没有重复,为0代表有重复
  59. HttpServletResponse response = ServletActionContext.getResponse();
  60. response.setContentType("text/html;charset=utf-8");
  61. PrintWriter out = response.getWriter();
  62. out.print(s);
  63. out.flush();
  64. out.close();
  65. return null;
  66. }
  67. //转化为Json格式
  68. public void toBeJson(List list,int total) throws Exception{
  69. HttpServletResponse response = ServletActionContext.getResponse();
  70. HttpServletRequest request = ServletActionContext.getRequest();
  71. JSONObject jobj = new JSONObject();//new一个JSON
  72. jobj.accumulate("total",total );//total代表一共有多少数据
  73. jobj.accumulate("rows", list);//row是代表显示的页的数据
  74. response.setCharacterEncoding("utf-8");//指定为utf-8
  75. response.getWriter().write(jobj.toString());//转化为JSOn格式
  76. log.info(jobj.toString());
  77. }
  78. public StudentService getStudent_services() {
  79. return student_services;
  80. }
  81. public void setStudent_services(StudentService student_services) {
  82. this.student_services = student_services;
  83. }
  84. public void setJsonObj(JSONObject jsonObj) {
  85. this.jsonObj = jsonObj;
  86. }
  87. public void setRows(String rows) {
  88. this.rows = rows;
  89. }
  90. public void setPage(String page) {
  91. this.page = page;
  92. }
  93. public void setStudent(Student student) {
  94. this.student = student;
  95. }
  96. public Student getStudent() {
  97. return student;
  98. }
  99. public void setParameter(String parameter) {
  100. this.parameter = parameter;
  101. }
  102. public void setTable(String table) {
  103. this.table = table;
  104. }
  105. public void setField(String field) {
  106. this.field = field;
  107. }
  108. public void setNum(String num) {
  109. this.num = num;
  110. }
  111. public void setIds(String ids) {
  112. this.ids = ids;
  113. }
  114. }

3、对应的接口StudentService

[java] view plaincopy

  1. package com.service;
  2. import java.util.List;
  3. import com.model.Student;
  4. public interface StudentService {
  5. public List getStudentList(String page,String rows) throws Exception;//根据第几页获取,每页几行获取数据
  6. public int getStudentTotal() throws Exception;//统计一共有多少数据
  7. public void saveStudent(Student student)throws Exception;//新增学生信息
  8. public String queryBy_unique(String table,String field ,String parameter) throws Exception;//验证唯一性
  9. public void deleteStudent(String ids) throws Exception;//删除学生信息
  10. }

4、对应的接口实现类,从43行开始的del()方法用循环的方式输出多个id,进行批量删除

[java] view plaincopy

  1. package com.serviceImpl;
  2. import java.util.List;
  3. import org.apache.log4j.Logger;
  4. import org.hibernate.Criteria;
  5. import org.hibernate.Query;
  6. import org.hibernate.SessionFactory;
  7. import org.hibernate.criterion.Restrictions;
  8. import com.model.Student;
  9. import com.service.StudentService;
  10. public class StudentServiceImpl implements StudentService {
  11. Logger log=Logger.getLogger(this.getClass());
  12. private SessionFactory sessionFactory;
  13. // 根据第几页获取,每页几行获取数据
  14. public List getStudentList(String page, String rows) {
  15. //当为缺省值的时候进行赋值
  16. int currentpage = Integer.parseInt((page == null || page == "0") ? "1": page);//第几页
  17. int pagesize = Integer.parseInt((rows == null || rows == "0") ? "10": rows);//每页多少行
  18. //查询学生信息,顺便按学号进行排序
  19. List list = this.sessionFactory.getCurrentSession().createQuery("from Student where flag=‘true‘  order by studentid")
  20. .setFirstResult((currentpage - 1) * pagesize).setMaxResults(pagesize).list();
  21. //setFirstResult 是设置开始查找处。setFirstResult的值 (当前页面-1)X每页条数
  22. //设置每页最多显示的条数  setMaxResults每页的条数了
  23. return list;
  24. }
  25. // 统计一共有多少数据
  26. public int getStudentTotal() throws Exception {
  27. return this.sessionFactory.getCurrentSession().find("from Student where flag=‘true‘").size();
  28. }
  29. // 新增学生信息
  30. public void saveStudent(Student student) throws Exception {
  31. student.setFlag("true");
  32. this.sessionFactory.getCurrentSession().save(student);
  33. }
  34. //判断是否具有唯一性
  35. public String queryBy_unique(String table,String field ,String parameter) throws Exception {
  36. System.out.println("===============验证唯一性=========");
  37. String s="select * from "+table +" t where t."+field+"=‘"+parameter+"‘";
  38. System.out.println("SQL语句:"+s);
  39. Query query = this.sessionFactory.getCurrentSession().createSQLQuery(s);
  40. int n=query.list().size();
  41. if(n==0)//如果集合的数量为0,说明没有重复,具有唯一性
  42. {
  43. return "1";//返回值为1,代表具有唯一性
  44. }
  45. return "0";//返回值为0,代表已经有了,重复了
  46. }
  47. //进行删除操作
  48. public void deleteStudent(String ids) throws Exception {
  49. log.info("删除学生信息");
  50. Student student=this.queryStudent(ids);
  51. student.setFlag("false");
  52. this.sessionFactory.getCurrentSession().update(student);
  53. }
  54. //根据学生主键查询学生信息
  55. public Student queryStudent(String id) throws Exception{
  56. log.info("根据学生主键查询学生信息");
  57. Criteria criteria=this.sessionFactory.getCurrentSession().createCriteria(Student.class);
  58. criteria.add(Restrictions.eq("studentid", id));
  59. Student student=(Student) criteria.list().get(0);
  60. return student;
  61. }
  62. public SessionFactory getSessionFactory() {
  63. return sessionFactory;
  64. }
  65. public void setSessionFactory(SessionFactory sessionFactory) {
  66. this.sessionFactory = sessionFactory;
  67. }
  68. }

5、对应的JSP页面index.jsp

[java] view plaincopy

  1. <%@ page language="java" pageEncoding="utf-8" isELIgnored="false"%>
  2. <%
  3. String path = request.getContextPath();
  4. %>
  5. <%@ taglib prefix="s" uri="/struts-tags"%>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  10. <title>Easyui</title>
  11. <!-- 引入Jquery -->
  12. <script type="text/javascript" src="<%=path%>/js/easyui/jquery-1.8.0.min.js" charset="utf-8"></script>
  13. <!-- 引入Jquery_easyui -->
  14. <script type="text/javascript" src="<%=path%>/js/easyui/jquery.easyui.min.js" charset="utf-8"></script>
  15. <!-- 引入easyUi国际化--中文 -->
  16. <script type="text/javascript" src="<%=path%>/js/easyui/locale/easyui-lang-zh_CN.js" charset="utf-8"></script>
  17. <!-- 引入easyUi默认的CSS格式--蓝色 -->
  18. <link rel="stylesheet" type="text/css" href="<%=path%>/js/easyui/themes/default/easyui.css" />
  19. <!-- 引入easyUi小图标 -->
  20. <link rel="stylesheet" type="text/css" href="<%=path%>/js/easyui/themes/icon.css" />
  21. <!-- 引入对应的JS,切记一定要放在Jquery.js和Jquery_Easyui.js后面,因为里面需要调用他们,建议放在最后面 -->
  22. <script type="text/javascript" src="<%=path%>/index.js" charset="utf-8"></script>
  23. </head>
  24. <body>
  25. <h2>
  26. <b>easyui的DataGrid实例</b>
  27. </h2>
  28. <table id="mydatagrid">
  29. <thead>
  30. <tr>
  31. <th data-options="field:‘studentid‘,width:100,align:‘center‘">学生学号</th>
  32. <th data-options="field:‘name‘,width:100,align:‘center‘">姓名</th>
  33. <th data-options="field:‘gender‘,width:100,align:‘center‘">性别</th>
  34. <th data-options="field:‘age‘,width:100,align:‘center‘">年龄</th>
  35. </tr>
  36. </thead>
  37. </table>
  38. <!-- 显示添加按钮的Div -->
  39. <div id="easyui_toolbar" style="padding: 2px 0px 2px 15px; height: auto">
  40. <a href="#" id="easyui_add" class="easyui-linkbutton" iconCls="icon-add" plain="true">添加学生信息</a>
  41. <a href="#" id="deltable" class="easyui-linkbutton"   iconCls="icon-remove" plain="true">批量删除</a>
  42. </div>
  43. <!-- 添加学生信息的表单       -->
  44. <div id="addDlg" class="easyui-dialog" style="width: 580px; height: 350px; padding: 10px 20px" closed="true" buttons="#addDlgBtn">
  45. <form id="addForm" method="post">
  46. <table>
  47. <tr>
  48. <td>学生主键</td>
  49. <td>
  50. <input name="student.studentid" id="studentid" class="easyui-validatebox" required="true" missingMessage="学生主键不能为空">
  51. </td>
  52. <td>
  53. <!-- 存放提示重复信息的div -->
  54. <div id="xianshi1" style="float: left"></div>
  55. <div style="float: left"> </div>
  56. <div id="xianshi2" style="font-size: 14px; color: #FF0000; float: left"></div>
  57. </td>
  58. </tr>
  59. <tr>
  60. <td>姓名</td>
  61. <td>
  62. <input name="student.name" id="name" class="easyui-validatebox" required="true" missingMessage="姓名不能为空">
  63. </td>
  64. </tr>
  65. <tr>
  66. <td>性别</td>
  67. <td>
  68. <!-- 使用Easyui中的combobox -->
  69. <select class="easyui-combobox" style="width: 155px;" name="student.gender" id="gender" data-options="panelHeight:‘auto‘">
  70. <option value="男">男</option>
  71. <option value="女">女</option>
  72. </select>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>年龄</td>
  77. <td>
  78. <input name="student.age" id="age" class="easyui-validatebox">
  79. </td>
  80. </tr>
  81. </table>
  82. </form>
  83. </div>
  84. <!-- 保存学生信息的按钮,被Jquery设置,当没被调用的时候不显示     -->
  85. <div id="addDlgBtn">
  86. <a href="#" id="addSaveBooktimecode" class="easyui-linkbutton" iconCls="icon-ok" onclick="add_ok()">确认</a>
  87. <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$(‘#addDlg‘).dialog(‘close‘)">取消</a>
  88. </div>
  89. </body>
  90. </html>

6、对应的JavaScript页面。index.js

[javascript] view plaincopy

    1. var isClickOk=true;//判断的变量
    2. $(function() {
    3. //datagrid设置参数
    4. $(‘#mydatagrid‘).datagrid({
    5. title : ‘datagrid实例‘,
    6. iconCls : ‘icon-ok‘,
    7. width : 600,
    8. pageSize : 5,//默认选择的分页是每页5行数据
    9. pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
    10. nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
    11. striped : true,//设置为true将交替显示行背景。
    12. collapsible : true,//显示可折叠按钮
    13. toolbar:"#easyui_toolbar",//在添加 增添、删除、修改操作的按钮要用到这个
    14. url:‘studentallInfo.action‘,//url调用Action方法
    15. loadMsg : ‘数据装载中......‘,
    16. //singleSelect:true,//为true时只能选择单行 为了实现批量删除必须隐去
    17. fitColumns:true,//允许表格自动缩放,以适应父容器
    18. sortName : ‘studentid‘,//当数据表格初始化时以哪一列来排序
    19. sortOrder : ‘asc‘,//定义排序顺序,可以是‘asc‘或者‘desc‘(正序或者倒序)。
    20. remoteSort : false,
    21. frozenColumns : [ [ {
    22. field : ‘ck‘,
    23. checkbox : true
    24. } ] ],
    25. pagination : true,//分页
    26. rownumbers : true//行数
    27. });
    28. //当点击添加学生信息的时候触发
    29. $("#easyui_add").click(function() {
    30. $("#xianshi1").empty();//清除上次出现的图标1
    31. $("#xianshi2").empty();//清除上次出现的图标2
    32. $(‘#addDlg‘).dialog(‘open‘).dialog(‘setTitle‘, ‘添加学生信息‘);//打开对话框
    33. $(‘#addForm‘).form(‘clear‘);
    34. });
    35. //当光标移开焦点的时候进行重复验证
    36. $("#studentid").blur(function(){
    37. jQuery.ajax({   //使用Ajax异步验证主键是否重复
    38. type : "post",
    39. url : "studentverify.action?table=Student&field=studentid¶meter="+$(‘#studentid‘).val(),
    40. dataType:‘json‘,
    41. success : function(s){
    42. if($(‘#studentid‘).val()==""){//当为主键为空的时候什么都不显示,因为Easyui的Validate里面已经自动方法限制
    43. }
    44. else if( s == "1" )//当返回值为1,表示在数据库中没有找到重复的主键
    45. {   isClickOk=true;
    46. $("#xianshi1").empty();
    47. var txt1="<img src="+"‘imgs/agree_ok.gif‘"+"/>";//引入打勾图标的路径
    48. $("#xianshi1").append(txt1);//在id为xianshi1里面加载打勾图标
    49. $("#xianshi2").empty();
    50. $("#xianshi2").append("未被使用");//在di为xianshi2中加载“未被使用”这四个字
    51. }
    52. else
    53. {
    54. $("#xianshi1").empty();
    55. isClickOk=false;
    56. var txt1="<img src="+"‘imgs/agree_no.gif‘"+"/>"//引入打叉图标的路径
    57. $("#xianshi1").append(txt1);//在id为xianshi1里面加载打叉图标
    58. $("#xianshi2").empty();
    59. $("#xianshi2").append("已被使用");//在id为xianshi2里面加载“已被使用”四个字
    60. }
    61. }
    62. });
    63. });
    64. /********** 点击删除按钮开始 ***********/
    65. $(‘#deltable‘).click(function(){
    66. var array = $(‘#mydatagrid‘).datagrid(‘getSelections‘);
    67. var id2="";
    68. var num=array.length;//获取要删除信息的个数
    69. for(var i=0; i<array.length; i++){//组成一个字符串,ID主键之间用逗号隔开
    70. if(i!=array.length-1){
    71. id2=id2+array[i].studentid+",";
    72. }else{
    73. id2=id2+array[i].studentid;
    74. }
    75. }
    76. var selected = $(‘#mydatagrid‘).datagrid(‘getSelected‘);
    77. if (array != "") {
    78. $.messager.defaults={ok:"确定",cancel:"取消"};
    79. $.messager.confirm(‘‘, ‘是否要删除该信息?‘, function(r){
    80. if (r){
    81. $.post("studentdel.action",
    82. {  ids:id2,num:num},function(response){
    83. if(response=="-1"){
    84. $.messager.alert(‘操作提示‘,"删除失败",‘error‘);
    85. }else{
    86. $(‘#mydatagrid‘).datagrid({url:"studentallInfo.action"});
    87. $.messager.alert(‘操作提示‘,"删除成功",‘info‘);
    88. }
    89. });
    90. }
    91. });
    92. }else{
    93. $.messager.alert(‘‘,"请先选择要删除的信息!");
    94. }
    95. });
    96. /********** 删除按钮结束 ***********/
    97. });
    98. //添加信息点击保存的时候触发此函数
    99. function add_ok(){
    100. $.messager.defaults={ok:"确定",cancel:"取消"};
    101. $.messager.confirm(‘Confirm‘, ‘您确定增加?‘, function(r){//使用确定,取消的选择框
    102. if (r){
    103. $(‘#addForm‘).form(‘submit‘,{//引入Easyui的Form
    104. url:"studentadd.action",//URL指向添加的Action
    105. onSubmit: function(){
    106. if(isClickOk==false){//当主键重复的时候先前就已经被设置为false,如果为false就不提交,显示提示框信息不能重复
    107. $.messager.alert(‘操作提示‘, ‘主键不能重复!‘,‘error‘);
    108. return false;
    109. }
    110. else if($(‘#addForm‘).form(‘validate‘)){//判断Easyui的Validate如果都没错误就同意提交
    111. $.messager.alert(‘操作提示‘, ‘添加信息成功!‘,‘info‘);
    112. return true;
    113. }else{//如果Easyui的Validate的验证有一个不完整就不提交
    114. $.messager.alert(‘操作提示‘, ‘信息填写不完整!‘,‘error‘);
    115. return false;
    116. }
    117. }
    118. });
    119. $(‘#mydatagrid‘).datagrid({url:‘studentallInfo.action‘});//实现Datagrid重新刷新效果
    120. $(‘#addDlg‘).dialog(‘close‘);//关闭对话框
    121. }
    122. });
    123. }
时间: 2024-10-06 01:55:37

实例:SSH结合Easyui实现Datagrid的批量删除功能的相关文章

实例:SSh结合Easyui实现Datagrid的分页显示(JAVA版)

近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. 首先看一下要实现的效果:当每页显示5行数据: 当每页显示10行数据,效果如下: 具体步骤: 1.下载Easyui,并搭建环境.可参照博客 http://blog.csdn.net/lhq13400526230/article/details/9148299 2.搭建SSH工程,整个工程的目录结构如

使用easyui实现列表的批量删除

使用easyui实现列表的批量删除 首先要做的就是添加一个多选框 <table id="otGrid" nowrap="false" style="height: 330px;"> <thead> <tr> <th data-options="checkbox:true"></th> //就是这个,多选框 在列表的配置选项中 添加一个 singleSelect:fal

SpringBoot实战项目(十二)--用户批量删除功能实现

页面构建--批量删除功能事件实现 1 <!DOCTYPE html> 2 <html class="x-admin-sm" xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>欢迎页面-X-admin2.2</title> 6 <header th:replace

layui表格的批量删除功能

1 // 批量删除功能 2 // 1.得到table选中行内容 3 // 2.得到删除需要的唯一值,一般是id; 4 // 3.将所要删除的项加入到数组中: 5 // 4.判断是否选中: 6 // 5.发送ajax请求,并附带参数id: 7 var $=layui.$,active={ 8 deLink:function () { 9 var checkStatus=table.checkStatus('idTest'), 10 data=checkStatus.data, 11 deList=

【EasyUi DataGrid】批量删除

DataGrid是我们做网页经常使用到的组件之中的一个,对它的操作也无非是增删改查操作.单条数据的增删改相对来说比較简单.添加.改动能够直接在DataGrid中进行,也能够用弹出框的形式把数据装载在文本框等各种控件中呈现给用户,让用户自己主动填写或改动.删除的事稍后再说.个人觉得"查"是最难的.由于它涉及到了表格的各种载入问题等等.假设你觉得这是危言耸听.那就我的期待兴许博客吧! 不知道上边在说什么的能够忽略不计.接下来进行正文部分.这次的DataGrid分三部分来写:批量删除.批量改

dojo Datagrid 实现数据删除功能

DataGrid实现数据动态刷新功能见前一个帖子:http://www.cnblogs.com/qq552048250/p/4447103.html 实现数据删除只需要向表格中动态添加按钮,并为按钮的点击事件添加代码,向服务器端的删除代码发出请求,服务器删除后,再向服务器发出显示数据的请求. Action中添加删除代码. JSP的代码如下: <%@ page language="java" import="java.util.*" pageEncoding=&

实例:汽车(实现邮箱模样的删除功能)

实现邮箱模样的删除功能: 第一步:把汽车表的数据显示出来. 1.把基本数据和相关联的系列名称.厂商名称显示出来 2.把复选框做出来.<input type='checkbox' id='cb<%#Eval("")%>' name='cb' value='<%#Eval("Code")%>'> 第二步:做删除按钮 1.取出选中的汽车主键 string s = Request["cb"].ToString() st

bos 第3天(easyui弹窗边界问题、取派员的添加、修改和批量删除)

BOS项目笔记 第3天 今天内容安排: 1.解决window窗口bug 2.bos项目整体需求分析(基础设置.取派.中转.路由.报表) 3.取派员添加功能 4.jQuery easyUI控件datagrid使用方式 5.基于datagrid实现取派员分页查询 6.取派员批量删除和修改 1. 修复window控件bug 将上面的js文件引入jsp页面中 2. 基础设置部分需求分析 整个基础设置部分对应需求文档2.6章节. 2.1 基础档案设置 在其他的系统中通常称为"数据字典".提供基础

easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题

做一个用easyui的datagrid显示数据的功能时发现表格的列头与数据错位了,而且这个现象不总是能重现,一直没搞清楚原因.后来偶然在控制台看出了一点端倪: 推测表头或者单元格的class名应该是用字段名拼出来的,如果含有特殊字符可能违反了css的命名规则(权威的css命名规则暂时没有找到,这篇文章稍有提到). 我找了个有特殊字符的列的数据,发现果然歪了.验证了想法. 由于项目的特殊性,数据库的表是动态创建的,也就是部分列名是由用户输入的,比较随意(当然,列头是另外是有显示名称的). 所以这个