分享

jquery easyui datagrid的增加,修改,删除

 修行的嘟嘟 2011-11-10

页面:

 

  1. <body>  
  2.     <form id="form1" runat="server">  
  3.     <table id="tt">  
  4.           
  5.     </table>  
  6.       
  7.     
  8.     </form>  
  9. </body>  

 

引用的JS:

 

  1. <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/script/themes/default/easyui.css" />  
  2.     <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/script/themes/icon.css" />  
  3.     <script type="text/javascript" src="http://www.cnblogs.com/script/jquery-1.4.2.min.js" </script>  
  4.     <script type="text/javascript" src="http://www.cnblogs.com/script/jquery.easyui.min.js" </script>  
  5.     <script type="text/javascript" src="http://www.cnblogs.com/script/locale/easyui-lang-zh_CN.js" mce_src="script/locale/easyui-lang-zh_CN.js"></script>   

 

JS:

 

  1. <script type="text/javascript"><!--  
  2.         $(function(){  
  3.             $('#tt').datagrid({  
  4.                 width:810,  
  5.                 height:400,  
  6.                 idField:'xsbh',  
  7.                 url:'studentHandler.ashx',  
  8.                 singleSelect:true,  
  9.                 columns:[[  
  10.                    {field:'xsbh',title:'编号',width:80},  
  11.                   {field:'UserName',title:'姓名',width:100},  
  12.                   {field:'Sex',title:'性别',width:30},  
  13.                   {field:'SchoolYear',title:'年份',width:50},  
  14.                   {field:'opt',title:'操作',width:100,align:'center',  
  15.                     formatter:function(value,rec,index){  
  16.                         var s = '<a href="#" mce_href="#" onclick="view(\''+ rec.xsbh + '\')">查看</a> ';  
  17.                         var e = '<a href="#" mce_href="#" onclick="edit(\''+ rec.xsbh + '\')">编辑</a> ';  
  18.                         var d = '<a href="#" mce_href="#" onclick="del(\''+ index +'\')">删除</a> ';  
  19.                         return s+e+d;  
  20.                     }  
  21.                   }  
  22.                 ]],  
  23.                 toolbar:[{  
  24.                     text:'增加',iconCls:'icon-add',handler:function(){  
  25.                         window.location.href='StuAdd.aspx';  
  26.                     }  
  27.                 },  
  28.                 {text:'导入',iconCls:'icon-add',handler:function(){  
  29.                     window.location.href='StuImport.aspx'  
  30.                     }  
  31.                 },  
  32.                 {text:'查找',iconCls:'icon-search'}  
  33.                 ],  
  34.                pagination:true  
  35.             });  
  36.         })  
  37.           
  38.           function view(bh)  //转到查看页面  
  39.             {  
  40.                 window.location.href='StuView.aspx?id='+bh+'&page=stu';  
  41. //              var row = $('#tt').datagrid('getSelected');  
  42. //               if(row)  
  43. //               {  
  44. //                  alert(row.xsbh);  
  45. //               }  
  46.             }  
  47.           function edit(bh)  //转到编辑页面  
  48.           {  
  49.                 window.location.href='StuEdit.aspx?id='+bh;  
  50.           }  
  51.             
  52.           function del(index){  //删除操作  
  53.             $.messager.confirm('确认','确认删除?',function(row){  
  54.                 if(row){  
  55.                     var selectedRow = $('#tt').datagrid('getSelected');  //获取选中行  
  56.                     $.ajax({  
  57.                         url:'delHandler.ashx?id='+selectedRow.xsbh+'&type=stu',    
  58. //加了个type,作用是以后不管什么删除,都可以转到这个ashx中处理  
  59.                         success:function(){alert('删除成功');}  
  60.                     });  
  61.                     $('#tt').datagrid('deleteRow',index);  
  62.                 }  
  63.             })  
  64.           }  
  65.       
  66. // --></script>  

 

 这里面要注意的是,"操作"的跨行,一定要带上field:'opt',当然,field可以是任何值,这个值不用从数据库中绑定,随便取.如果没有field的话,会弹出 "rowspan为空或不是对象"的错误

获取数据和分页ashx:

 

  1. using System;  
  2. using System.Web;  
  3. using System.Data;  
  4. using System.Text;  
  5.   
  6. public class studentHandler : IHttpHandler {  
  7.       
  8.     public void ProcessRequest (HttpContext context) {  
  9.         context.Response.ContentType = "text/plain";  
  10.         DataSet ds = new DataSet();  
  11.         //点击datagrid的分页按钮,自动向后台发送2个参数,rows和page,代表每页记录数和页索引  
  12.         int row = int.Parse(context.Request["rows"].ToString());  
  13.         int page = int.Parse(context.Request["page"].ToString());  
  14.         ds = GetContent(row, page);  
  15.         string text =json.Dataset2Json(ds);  
  16.         context.Response.Write(text);  
  17.     }  
  18.   
  19.     private DataSet GetContent(int pagesize,int pageindex)  
  20.     {  
  21.         Graduate.BLL.Student bll = new Graduate.BLL.Student();  
  22.         return bll.GetList(pagesize, pageindex);  
  23.     }  
  24.     public bool IsReusable {  
  25.         get {  
  26.             return false;  
  27.         }  
  28.     }  
  29.   
  30. }  

 

删除ashx

 

  1. using System;  
  2. using System.Web;  
  3. using System.Web.SessionState;  
  4.   
  5. public class delHandler : IHttpHandler,IRequiresSessionState {  
  6.       
  7.     public void ProcessRequest (HttpContext context) {  
  8.         context.Response.ContentType = "text/plain";  
  9.         string id = context.Request["id"].ToString();  
  10.         string type = context.Request["type"].ToString();  
  11.         switch (type)  
  12.         {   
  13.             case "stu":  
  14.                 Graduate.BLL.Student stubll = new Graduate.BLL.Student();  
  15.                 stubll.Delete(id, HttpContext.Current.Session["username"].ToString(), HttpContext.Current.Session["usertype"].ToString());  
  16.                 break;  
  17.             default:  
  18.                 break;  
  19.         }  
  20.     }  
  21.   
  22.     public bool IsReusable {  
  23.         get {  
  24.             return false;  
  25.         }  
  26.     }  
  27.   
  28. }  

 

IRequiresSessionState 是因为用到了服务器端的session,没有用到的话可以去掉
 
 
 

加载相关js和css,因为easyui依赖jquery,所有加载easyui前要先加载jquery,否则为提示找不到datagrid

 

 

Html代码
  1. <!-- 加载jquery -->  
  2.         <script type="text/javascript" src="plugins/jquery/jquery-1.4.2.min.js"></script>  
  3.         <!-- 加载jquery-easyui -->  
  4.         <link rel="stylesheet" type="text/css" href="plugins/jquery/jquery-easyui-1.1.2/themes/default/easyui.css">  
  5.         <link rel="stylesheet" type="text/css" href="plugins/jquery/jquery-easyui-1.1.2/themes/icon.css">  
  6.         <script type="text/javascript" src="plugins/jquery/jquery-easyui-1.1.2/jquery.easyui.min.js"></script>  

 

界面加入

 

 

Html代码
  1. <table id="cxdm"></table>  

 

加载datagrid的js代码

 

 

Java代码
  1. //页面加载  
  2. $(document).ready(function(){  
  3.             loadGrid();  
  4. });  
  5.   
  6. //加载表格datagrid  
  7. function loadGrid()  
  8. {  
  9.     //加载数据  
  10.     $('#cxdm').datagrid({  
  11.                 width: 'auto',  
  12.                 height:300,               
  13.                 striped: true,  
  14.                 singleSelect : true,  
  15.                 url:'getPsNewConsultList.action',  
  16.                 //queryParams:{},  
  17.                 loadMsg:'数据加载中请稍后……',  
  18.                 pagination: true,  
  19.                 rownumbers: true,     
  20.                 columns:[[  
  21.                     {field:'adviceid',title: '来文号',align: 'center',width: getWidth(0.2)},  
  22.                     {field:'consulter',title: '案由',align: 'center',width: getWidth(0.45),  
  23.                         //添加超级链,并将来文号作为参数传入  
  24.                         formatter:function(val,rec){  
  25.                             //alert(rec.adviceid);  
  26.                             return "<a href='jsp/proposal/psconsultview.jsp?id="+rec.adviceid+"'>"+val+"</a>";  
  27.                        }  
  28.                     },  
  29.                     {field:'content',title: '状态',align: 'center',width: getWidth(0.2)},  
  30.                     {field:'replynumber',title: '回复数',align: 'center',width: getWidth(0.05)}                                                          
  31.                 ]]  
  32.             });  
  33. }  
  34.   
  35. //为loadGrid()添加参数  
  36.         var queryParams = $('#cxdm').datagrid('options').queryParams;  
  37.         queryParams.who = who.value;  
  38.         queryParams.type = type.value;  
  39.         queryParams.searchtype = searchtype.value;  
  40.         queryParams.keyword = keyword.value;  
  41.         //重新加载datagrid的数据  
  42.         $("#cxdm").datagrid('reload');  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约