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

weixin_34262482發表於2010-12-21

截圖:

頁面:

 

  1. <body>  
  2.     <form id="form1" runat="server">  
  3.     <table id="tt">  
  4.           
  5.     </table>  
  6.       
  7.     
  8.     </form>  
  9. </body>  
<body> <form id="form1" runat="server"> <table id="tt"> </table> </form> </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>   
<link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/script/themes/default/easyui.css" /> <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/script/themes/icon.css" /> <script type="text/javascript" src="http://www.cnblogs.com/script/jquery-1.4.2.min.js" </script> <script type="text/javascript" src="http://www.cnblogs.com/script/jquery.easyui.min.js" </script> <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>  
<script type="text/javascript"><!-- $(function(){ $('#tt').datagrid({ width:810, height:400, idField:'xsbh', url:'studentHandler.ashx', singleSelect:true, columns:[[ {field:'xsbh',title:'編號',width:80}, {field:'UserName',title:'姓名',width:100}, {field:'Sex',title:'性別',width:30}, {field:'SchoolYear',title:'年份',width:50}, {field:'opt',title:'操作',width:100,align:'center', formatter:function(value,rec,index){ var s = '<a href="#" mce_href="#" onclick="view(\''+ rec.xsbh + '\')">檢視</a> '; var e = '<a href="#" mce_href="#" onclick="edit(\''+ rec.xsbh + '\')">編輯</a> '; var d = '<a href="#" mce_href="#" onclick="del(\''+ index +'\')">刪除</a> '; return s+e+d; } } ]], toolbar:[{ text:'增加',iconCls:'icon-add',handler:function(){ window.location.href='StuAdd.aspx'; } }, {text:'匯入',iconCls:'icon-add',handler:function(){ window.location.href='StuImport.aspx' } }, {text:'查詢',iconCls:'icon-search'} ], pagination:true }); }) function view(bh) //轉到檢視頁面 { window.location.href='StuView.aspx?id='+bh+'&page=stu'; // var row = $('#tt').datagrid('getSelected'); // if(row) // { // alert(row.xsbh); // } } function edit(bh) //轉到編輯頁面 { window.location.href='StuEdit.aspx?id='+bh; } function del(index){ //刪除操作 $.messager.confirm('確認','確認刪除?',function(row){ if(row){ var selectedRow = $('#tt').datagrid('getSelected'); //獲取選中行 $.ajax({ url:'delHandler.ashx?id='+selectedRow.xsbh+'&type=stu', //加了個type,作用是以後不管什麼刪除,都可以轉到這個ashx中處理 success:function(){alert('刪除成功');} }); $('#tt').datagrid('deleteRow',index); } }) } // --></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. }  
using System; using System.Web; using System.Data; using System.Text; public class studentHandler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; DataSet ds = new DataSet(); //點選datagrid的分頁按鈕,自動向後臺傳送2個引數,rows和page,代表每頁記錄數和頁索引 int row = int.Parse(context.Request["rows"].ToString()); int page = int.Parse(context.Request["page"].ToString()); ds = GetContent(row, page); string text =json.Dataset2Json(ds); context.Response.Write(text); } private DataSet GetContent(int pagesize,int pageindex) { Graduate.BLL.Student bll = new Graduate.BLL.Student(); return bll.GetList(pagesize, pageindex); } public bool IsReusable { get { return false; } } }

 

刪除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. }  
using System; using System.Web; using System.Web.SessionState; public class delHandler : IHttpHandler,IRequiresSessionState { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string id = context.Request["id"].ToString(); string type = context.Request["type"].ToString(); switch (type) { case "stu": Graduate.BLL.Student stubll = new Graduate.BLL.Student(); stubll.Delete(id, HttpContext.Current.Session["username"].ToString(), HttpContext.Current.Session["usertype"].ToString()); break; default: break; } } public bool IsReusable { get { return false; } } }

 

IRequiresSessionState 是因為用到了伺服器端的session,沒有用到的話可以去掉

相關文章