Jquery easyui開啟行編輯模式增刪改操作


Jquery easyui開啟行編輯模式增刪改操作

Jquery easyui開啟行編輯模式增刪改操作先上圖

 

Html代碼:

  <table id="dd">
  </table>

引入JS文件和CSS樣式

復制代碼
<script src="http://www.cnblogs.com/Resources/jquery-easyui-1.2.3/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="http://www.cnblogs.com/Resources/jquery-easyui-1.2.3/jquery.easyui.min.js" type="text/javascript"></script>
    <link href="http://www.cnblogs.com/Resources/jquery-easyui-1.2.3/themes/default/easyui.css" rel="stylesheet"
        type="text/css" />
    <link href="http://www.cnblogs.com/Resources/jquery-easyui-1.2.3/themes/icon.css" rel="stylesheet"
        type="text/css" />
    <script src="http://www.cnblogs.com/Resources/jquery-easyui-1.2.3/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
復制代碼
復制代碼
<script type="text/javascript">

        $(function () {
            var datagrid; //定義全局變量datagrid
            var editRow = undefined; //定義全局變量:當前編輯的行
            datagrid = $("#dd").datagrid({
                url: 'UserCenter.aspx', //請求的數據源
                iconCls: 'icon-save', //圖標
                pagination: true, //顯示分頁
                pageSize: 15, //頁大小
                pageList: [15, 30, 45, 60], //頁大小下拉選項此項各value是pageSize的倍數
                fit: true, //datagrid自適應寬度
                fitColumn: false, //列自適應寬度
                striped: true, //行背景交換
                nowap: true, //列內容多時自動折至第二行
                border: false,
                idField: 'ID', //主鍵
                columns: [[//顯示的列
                {field: 'ID', title: '編號', width: 100, sortable: true, checkbox: true },
                 { field: 'UserName', title: '用戶名', width: 100, sortable: true,
                     editor: { type: 'validatebox', options: { required: true} }
                 },
                  { field: 'RealName', title: '真實名稱', width: 100,
                      editor: { type: 'validatebox', options: { required: true} }
                  },
                   { field: 'Email', title: '郵箱', width: 100,
                       editor: { type: 'validatebox', options: { required: true} }
                   }
                   ]],
                queryParams: { action: 'query' }, //查詢參數
                toolbar: [{ text: '添加', iconCls: 'icon-add', handler: function () {//添加列表的操作按鈕添加,修改,刪除等
                    //添加時先判斷是否有開啟編輯的行,如果有則把開戶編輯的那行結束編輯
                    if (editRow != undefined) {
                        datagrid.datagrid("endEdit", editRow);
                    }
                    //添加時如果沒有正在編輯的行,則在datagrid的第一行插入一行
                    if (editRow == undefined) {
                        datagrid.datagrid("insertRow", {
                            index: 0, // index start with 0
                            row: {

                            }
                        });
                        //將新插入的那一行開戶編輯狀態
                        datagrid.datagrid("beginEdit", 0);
                        //給當前編輯的行賦值
                        editRow = 0;
                    }

                }
                }, '-',
                 { text: '刪除', iconCls: 'icon-remove', handler: function () {
                     //刪除時先獲取選擇行
                     var rows = datagrid.datagrid("getSelections");
                     //選擇要刪除的行
                     if (rows.length > 0) {
                         $.messager.confirm("提示", "你確定要刪除嗎?", function (r) {
                             if (r) {
                                 var ids = [];
                                 for (var i = 0; i < rows.length; i++) {
                                     ids.push(rows[i].ID);
                                 }
                                 //將選擇到的行存入數組並用,分隔轉換成字符串,
                                 //本例只是前台操作沒有與數據庫進行交互所以此處只是彈出要傳入后台的id
                                 alert(ids.join(','));
                             }
                         });
                     }
                     else {
                         $.messager.alert("提示", "請選擇要刪除的行", "error");
                     }
                 }
                 }, '-',
                 { text: '修改', iconCls: 'icon-edit', handler: function () {
                     //修改時要獲取選擇到的行
                     var rows = datagrid.datagrid("getSelections");
                     //如果只選擇了一行則可以進行修改,否則不操作
                     if (rows.length == 1) {
                         //修改之前先關閉已經開啟的編輯行,當調用endEdit該方法時會觸發onAfterEdit事件
                         if (editRow != undefined) {
                             datagrid.datagrid("endEdit", editRow);
                         }
                         //當無編輯行時
                         if (editRow == undefined) {
                             //獲取到當前選擇行的下標
                             var index = datagrid.datagrid("getRowIndex", rows[0]);
                             //開啟編輯
                             datagrid.datagrid("beginEdit", index);
                             //把當前開啟編輯的行賦值給全局變量editRow
                             editRow = index;
                             //當開啟了當前選擇行的編輯狀態之后,
                             //應該取消當前列表的所有選擇行,要不然雙擊之后無法再選擇其他行進行編輯
                             datagrid.datagrid("unselectAll");
                         }
                     }
                 }
                 }, '-',
                 { text: '保存', iconCls: 'icon-save', handler: function () {
                     //保存時結束當前編輯的行,自動觸發onAfterEdit事件如果要與后台交互可將數據通過Ajax提交后台
                     datagrid.datagrid("endEdit", editRow);
                 }
                 }, '-',
                 { text: '取消編輯', iconCls: 'icon-redo', handler: function () {
                     //取消當前編輯行把當前編輯行罷undefined回滾改變的數據,取消選擇的行
                     editRow = undefined;
                     datagrid.datagrid("rejectChanges");
                     datagrid.datagrid("unselectAll");
                 }
                 }, '-'],
                onAfterEdit: function (rowIndex, rowData, changes) {
                    //endEdit該方法觸發此事件
                    console.info(rowData);
                    editRow = undefined;
                },
                onDblClickRow: function (rowIndex, rowData) {
                //雙擊開啟編輯行
                    if (editRow != undefined) {
                        datagrid.datagrid("endEdit", editRow);
                    }
                    if (editRow == undefined) {
                        datagrid.datagrid("beginEdit", rowIndex);
                        editRow = rowIndex;
                    }
                }
            });
        });
    </script>
復制代碼

 

綠色通道: 好文要頂 關注我 收藏該文 與我聯系
0
0
(請您對文章做出評價)
« 上一篇: SQL分頁存儲過程及調用方法
» 下一篇: .net文件壓縮和解壓及中文文件夾名稱亂碼問題
posted @ 2013-05-14 09:22 翟中龍 閱讀( 1713) 評論( 4) 編輯 收藏

  
#1樓 2013-09-27 19:48 龍鯉  
樓主太叼了!
正是我想要的,感激不盡
  
#2樓 2014-01-16 16:11 ILONEY  
請問能同時實現添加多行嗎?
  
#3樓 [ 樓主] 2014-01-16 16:16 翟中龍  
@ILONEY
可以的
  
#4樓 2014-01-17 09:12 ILONEY  
那你前台的數據是如何傳遞到后台去的呢,后台又是如何接受這些數據集...
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>

     <link href="../themes/icon.css" rel="stylesheet" />
    <link href="../themes/default/easyui.css" rel="stylesheet" />
    <link href="../src/demo.css" rel="stylesheet" />
    <script src="../comjs/jquery-1.8.0.min.js" type="text/javascript"></script>
   <script src="src/easyloader.js" type="text/javascript"></script>
    <script src="../comjs/jquery.easyui.min.js" type="text/javascript"></script>
    <script type="text/javascript">
      
        $(function () {
            
            var datagrid; //定義全局變量datagrid
            var editRow = undefined; //定義全局變量:當前編輯的行
            datagrid = $("#dd").datagrid({
                url: "Data.ashx", //請求的數據源
                iconCls: "icon-save", //圖標
                pagination: true, //顯示分頁
                pageSize: 8, //頁大小
                pageList: [8,15, 30, 45, 60], //頁大小下拉選項此項各value是pageSize的倍數
                fit: true, //datagrid自適應寬度
                fitColumn: false, //列自適應寬度
                striped: true, //行背景交換
                nowap: true, //列內容多時自動折至第二行
                border: false,
                idField: "mId", //主鍵
                columns: [[//顯示的列
                  { checkbox: true },
                  {
                      field: "mId", title: "編號", width: 100, align: "center", sortable: true
                      ,
                      editor: { type: "validatebox", options: { required: true } }
                  },

                 {
                     field: "mName", title: "菜單名", align: "center", width: 100, sortable: true
                     ,
                     editor: { type: "validatebox", options: { required: true } }
                 },
                  {
                      field: "mIsDel", title: "刪除標示", align: "center", width: 100
                      ,
                      editor: { type: "validatebox", options: { required: true } }
                  },
                   {
                       field: "mAddtime", title: "添加時間", align: "center", width: 100
                       ,
                       editor: { type: "validatebox", options: { required: true } }
                   }
                ]],
             //   columns: [[
             //{ checkbox: true },
             //{ field: "mId", title: "MenuID", width: 100, align: "center" },
             //{ field: "mName", title: "MenuName", width: 100, align: "center" },
             // { field: "mIsDel", title: "MenuIsDel", width: 100, align: "center" },
             //{ field: "mAddtime", title: "MenuAddtime", width: 100, align: "center" }

             //   ]],
                queryParams: { action: "query" }, //查詢參數
                toolbar: [{
                    text: "添加", iconCls: "icon-add", handler: function () {//添加列表的操作按鈕添加,修改,刪除等
                        //添加時先判斷是否有開啟編輯的行,如果有則把開戶編輯的那行結束編輯
                        if (editRow != undefined) {
                            datagrid.datagrid("endEdit", editRow);
                        }
                        //添加時如果沒有正在編輯的行,則在datagrid的第一行插入一行
                        if (editRow == undefined) {
                            datagrid.datagrid("insertRow", {
                                index: 0, // index start with 0
                                row: {

                                }
                            });
                            //將新插入的那一行開戶編輯狀態
                            datagrid.datagrid("beginEdit", 0);
                            //給當前編輯的行賦值
                            editRow = 0;
                        }

                    }
                }, "-",
                 {
                     text: "刪除", iconCls: "icon-remove", handler: function () {
                         //刪除時先獲取選擇行
                         var NumIndex = datagrid.datagrid("getRowIndex", datagrid.datagrid("getSelections")[0]);
                         var rows = datagrid.datagrid("getSelections");
                         //選擇要刪除的行
                         if (rows.length > 0) {
                             $.messager.confirm("提示", "你確定要刪除嗎?", function (r) {
                                 if (r) {
                                     var ids = [];
                                     for (var i = 0; i < rows.length; i++) {
                                         ids.push(rows[i].mId);
                                      //   datagrid.datagrid('deleteRow', NumIndex[i]);
                                         
                                     }
                                     for (var i = 0; i < rows.length; i++) {
                                       //  ids.push(rows[i].mId);
                                        datagrid.datagrid('deleteRow', datagrid.datagrid("getRowIndex", datagrid.datagrid("getSelections")[i]));
                                         console.info(NumIndex[0]+":"+NumIndex[1]+":"+NumIndex[2]);
                                     //    console.info(rows);

                                     }
                                    datagrid.datagrid('deleteRow',NumIndex);
                                     ids.join(",");
                                     console.info(ids);
                                     //將選擇到的行存入數組並用,分隔轉換成字符串,
                                     //本例只是前台操作沒有與數據庫進行交互所以此處只是彈出要傳入后台的id
                                   //  alert(ids.join(","));
                                 }
                             });
                         }
                         else {
                             $.messager.alert("提示", "請選擇要刪除的行", "hahhahah");
                         }
                      
                     }
                 }, "-",
                 {
                     text: "修改", iconCls: "icon-edit", handler: function () {
                         //修改時要獲取選擇到的行
                         var rows = datagrid.datagrid("getSelections");
                         //如果只選擇了一行則可以進行修改,否則不操作
                         if (rows.length == 1) {
                             //修改之前先關閉已經開啟的編輯行,當調用endEdit該方法時會觸發onAfterEdit事件
                             if (editRow != undefined) {
                                 datagrid.datagrid("endEdit", editRow);
                             }
                             //當無編輯行時
                             if (editRow == undefined) {
                                 //獲取到當前選擇行的下標
                                 var index = datagrid.datagrid("getRowIndex", rows[0]);
                                 //開啟編輯
                                 datagrid.datagrid("beginEdit", index);
                                 //把當前開啟編輯的行賦值給全局變量editRow
                                 editRow = index;
                                 //當開啟了當前選擇行的編輯狀態之后,
                                 //應該取消當前列表的所有選擇行,要不然雙擊之后無法再選擇其他行進行編輯
                                 datagrid.datagrid("unselectAll");
                             }
                         }
                     }
                 }, "-",
                 {
                     text: "保存", iconCls: "icon-save", handler: function () {
                         //保存時結束當前編輯的行,自動觸發onAfterEdit事件如果要與后台交互可將數據通過Ajax提交后台
                         datagrid.datagrid("endEdit", editRow);
                     }
                 }, "-",
                 {
                     text: "取消編輯", iconCls: "icon-redo", handler: function () {
                         //取消當前編輯行把當前編輯行罷undefined回滾改變的數據,取消選擇的行
                         editRow = undefined;
                         datagrid.datagrid("rejectChanges");
                         datagrid.datagrid("unselectAll");
                     }
                 }, "-"],
                onAfterEdit: function (rowIndex, rowData, changes) {
                    //endEdit該方法觸發此事件
                    console.info(rowData);
                    editRow = undefined;
                },
                onDblClickRow: function (rowIndex, rowData) {
                    //雙擊開啟編輯行
                    if (editRow != undefined) {
                        datagrid.datagrid("endEdit", editRow);
                    }
                    if (editRow == undefined) {
                        datagrid.datagrid("beginEdit", rowIndex);
                        editRow = rowIndex;
                    }
                }
            });
        });
    </script>
</head>
<body>
      <table id="dd">
  </table>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM