Rumah hujung hadapan web tutorial js EasyUI中的dataGrid的行内编辑实例详解

EasyUI中的dataGrid的行内编辑实例详解

Jan 06, 2018 am 11:00 AM
easyui edit

本文主要介绍了EasyUI中的dataGrid的行内编辑的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下,希望能帮助到大家。

这个js代码是别人写的,可能不是最好的,但我个人觉得首先能帮助别人解决功能问题的话就特别好。我稍加修改后用在了自己的项目上了,这里贴出来分享一下。后台用的TinkPHP因为都是查增删改比较简单,这里就不贴了。前台效果图因为比较懒,也不贴了。


$(function () {
    var datagrid; //定义全局变量datagrid
    var editRow = undefined; //定义全局变量:当前编辑的行
    datagrid = TskupluAddPacket.datagrid({
        url: ThinkPHP['MODULE'] + '/Tskuplu/getPacketList', //请求的数据源
        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: 'packetid', //主键
        sortName : 'packetid',                                  //排序字段
        sortOrder : 'desc',                  //排序方式
        columns: [[//显示的列
            {field: 'packetid', title: 'ID', width: 100, sortable: true, checkbox: true },
            { field: 'packunit', title: '包装单位', width: 100, sortable: true,
                editor: { type: 'validatebox', options: { required: true} }
            },
            { field: 'packqty', title: '包装细数', width: 100,
                editor: { type: 'validatebox', options: { required: true} }
            },
            { field: 'packspec', title: '包装规格', width: 100,
                editor: { type: 'validatebox', options: { required: true} }
            }
        ]],
        queryParams: { 
          pluid: $('#addpluid').val()
        }, //查询参数
        toolbar: [{ text: '添加', iconCls: 'icon-add', handler: function () {//添加列表的操作按钮添加,修改,删除等
            //添加时如果没有正在编辑的行,则在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].packetid);
                    }
                    //将选择到的行存入数组并用,分隔转换成字符串,
                    //本例只是前台操作没有与数据库进行交互所以此处只是弹出要传入后台的id
                    //alert(ids.join(&#39;,&#39;));
                    $.ajax({
                      url : ThinkPHP[&#39;MODULE&#39;] + &#39;/Tskuplu/deletePacket&#39;,
                      type : &#39;POST&#39;,
                      data : {
                        ids : ids.join(&#39;,&#39;)
                      },
                      beforeSend : function (){
                        $.messager.progress({
                          text : &#39;正在处理中...&#39;
                        });  
                      },
                      success : function (data){
                        $.messager.progress(&#39;close&#39;);
                        if (data >0){
                          datagrid.datagrid(&#39;reload&#39;);
                          $.messager.show({
                            title : &#39;操作提醒&#39;,
                            msg  : data + &#39;条数据被成功删除!&#39;
                          })
                        } else if( data == -999 ) {
                          $.messager.alert(&#39;删除失败&#39;, &#39;对不起,您没有权限!&#39;, &#39;warning&#39;);
                        } else {
                          $.messager.alert(&#39;删除失败&#39;, &#39;没有删除任何数据!&#39;, &#39;warning&#39;);
                        }
                      }
                    });                  
                  }
                });
             } else {
                $.messager.alert("提示", "请选择要删除的行", "error");
             } 
          }
        }, &#39;-&#39;,
        { text: &#39;修改&#39;, iconCls: &#39;icon-edit&#39;, 
          handler: function () {
            //修改时要获取选择到的行
            var rows = datagrid.datagrid("getSelections");
            //如果只选择了一行则可以进行修改,否则不操作
            if (rows.length == 1) {
              //当无编辑行时
              if (editRow == undefined) {
                //获取到当前选择行的下标
                var index = datagrid.datagrid("getRowIndex", rows[0]);
                //开启编辑
                datagrid.datagrid("beginEdit", index);
                //把当前开启编辑的行赋值给全局变量editRow
                editRow = index;
                //当开启了当前选择行的编辑状态之后,
                //应该取消当前列表的所有选择行,要不然双击之后无法再选择其他行进行编辑
                datagrid.datagrid("unselectAll");
              }
            }
          }
        }, &#39;-&#39;,
        { text: &#39;保存&#39;, iconCls: &#39;icon-save&#39;, 
          handler: function () {
             //保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台
             datagrid.datagrid("endEdit", editRow); 
             editRow = undefined;
          }
        }, &#39;-&#39;,
        { text: &#39;取消编辑&#39;, iconCls: &#39;icon-redo&#39;, 
          handler: function () {
             //取消当前编辑行把当前编辑行罢undefined回滚改变的数据,取消选择的行
             editRow = undefined;
             datagrid.datagrid("rejectChanges");
             datagrid.datagrid("unselectAll");
          }
        }, &#39;-&#39;],
        onAfterEdit: function (rowIndex, rowData, changes) {
          //endEdit该方法触发此事件           
          //var row = datagrid.datagrid("getData").rows[rowIndex]; //获取某一行的值 
          var inserted = datagrid.datagrid(&#39;getChanges&#39;,&#39;inserted&#39;);
          var updated = datagrid.datagrid(&#39;getChanges&#39;,&#39;updated&#39;);
          if(inserted.length < 1 && updated.length <1){
            editRow = undefined;
            datagrid.datagrid(&#39;unselectAll&#39;);
            return;
          }
          var url = &#39;&#39;;
          if(inserted.length>0){
            url=ThinkPHP[&#39;MODULE&#39;] + &#39;/Tskuplu/addPacket&#39;;
          }
          if(updated.length>0){
            url=ThinkPHP[&#39;MODULE&#39;] + &#39;/Tskuplu/updatePacket&#39;;
          }
          $.ajax({
            url : url,
            type : &#39;POST&#39;,
            data : {
              &#39;pluid&#39;: $(&#39;#addpluid&#39;).val(),
              &#39;packetid&#39;:rowData.packetid,
              &#39;packunit&#39;:rowData.packunit,
              &#39;packqty&#39; :rowData.packqty,
              &#39;packspec&#39;:rowData.packspec
            },
            beforeSend : function (){
              $.messager.progress({
                text : &#39;正在处理中...&#39;
              })
            },
            success : function (data){
              $.messager.progress(&#39;close&#39;);
              if (data > 0){ 
                datagrid.datagrid("acceptChanges"); 
                $.messager.show({
                  title : &#39;操作提示&#39;,
                  msg : &#39;添加成功&#39;
                });      
                editRow = undefined;
                datagrid.datagrid("reload"); 
                $(&#39;#addcheck&#39;).val(1);
              } else if (data == -999) {
                $.messager.alert(&#39;添加失败&#39;, &#39;抱歉!您没有权限!&#39;, &#39;warning&#39;);
              } else {
                datagrid.datagrid("beginEdit",editRow); 
                $.messager.alert(&#39;警告操作&#39;, &#39;未知错误!请重新刷新后提交!&#39;, &#39;warning&#39;);
              }
              datagrid.datagrid("unselectAll"); 
            }
          });
          //////////////////                         
        },
        onDblClickRow: function (rowIndex, rowData) {
        //双击开启编辑行
          if (editRow == undefined) {
              datagrid.datagrid("beginEdit", rowIndex);
              editRow = rowIndex;
          }
        }
    });   
  });
Salin selepas log masuk

相关推荐:

Easyui Datagrid自定义按钮列详解

实例详解EasyUI的DataGrid每行数据添加操作按钮

EasyUi控件中的Datagrid详解

Atas ialah kandungan terperinci EasyUI中的dataGrid的行内编辑实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengedit dokumen dalam Tencent Docs? -Panduan Tutorial Mengedit Dokumen Tencent Document Bagaimana untuk mengedit dokumen dalam Tencent Docs? -Panduan Tutorial Mengedit Dokumen Tencent Document Mar 19, 2024 am 08:19 AM

Adakah sesiapa yang tahu cara mengedit dokumen dalam Tencent Docs? Saya harap ia dapat membantu anda. Penjelasan grafik terperinci mengenai penyuntingan dokumen dalam Tencent Documents 1. Mula-mula, masukkan Tencent Documents terus (jika anda tidak memilikinya, muat turun sekarang!) dan log masuk terus (QQ dan TIM dua kaedah log masuk disokong) 2. Selepas log masuk , klik Tambah di sudut kanan atas No., terus buat dokumen dalam talian, borang dalam talian, folder baharu, dsb. 3. Kemudian masukkan maklumat mengikut keperluan anda!

Bagaimana untuk memulihkan fail hos yang dipadam Bagaimana untuk memulihkan fail hos yang dipadam Feb 22, 2024 pm 10:48 PM

Tajuk: Cara memulihkan fail hos selepas pemadaman Ringkasan: Fail hos ialah fail yang sangat penting dalam sistem pengendalian dan digunakan untuk memetakan nama domain kepada alamat IP. Jika anda secara tidak sengaja memadam fail hos, anda mungkin tidak dapat mengakses tapak web tertentu atau mengalami masalah rangkaian lain. Artikel ini akan memperkenalkan cara memulihkan fail hos yang dipadam secara tidak sengaja dalam sistem pengendalian Windows dan Mac. Teks: 1. Pulihkan fail hos dalam sistem pengendalian Windows fail Hos dalam sistem pengendalian Windows

Bagaimana untuk mengedit halaman skrin utama pada iPhone Bagaimana untuk mengedit halaman skrin utama pada iPhone Feb 14, 2024 pm 02:00 PM

Apple membenarkan anda menukar skrin utama anda dengan cepat dengan menyusun semula halaman skrin utama anda pada bila-bila masa dan memadamkannya secara bebas. Dengan cara ini, anda boleh menyembunyikan berbilang apl dan widget dengan mudah tanpa menyeret dan memadamkannya satu demi satu. Dalam artikel ini, kami akan menerangkan cara mengedit halaman pada skrin utama iPhone anda. KANDUNGAN[PAPARKAN] Menunjukkan cara mengedit halaman skrin Utama pada iPhone Anda boleh mengedit skrin Utama untuk menyusun semula halaman, menyembunyikan/menyahsembunyikan halaman tertentu dalam skrin Utama dan memadamkan halaman sepenuhnya. Untuk mula mengedit skrin utama iPhone anda, tekan dan tahan kawasan kosong pada skrin utama anda. Apabila skrin utama anda memasuki mod jitter, ketik baris titik di bahagian bawah skrin. Anda kini sepatutnya melihat semua skrin utama anda dipaparkan dalam format grid. Pilihan 1: Pada skrin utama

Perkara yang perlu dilakukan jika dokumen perkataan tidak boleh diedit Perkara yang perlu dilakukan jika dokumen perkataan tidak boleh diedit Mar 19, 2024 pm 09:37 PM

Selepas mengedit dokumen, kami akan menyimpan dokumen untuk memberikan kemudahan untuk mengedit dan mengubah suai dokumen pada masa akan datang Kadang-kadang kami boleh mengubah suainya terus selepas mengklik pada dokumen yang diedit, tetapi kadang-kadang atas sebab yang tidak diketahui, tidak ada jawapan tidak kira bagaimana kami. klik pada dokumen perkataan, dan arahan tidak akan dilaksanakan, apakah yang perlu saya lakukan jika dokumen perkataan tidak boleh diedit? Jangan risau, editor akan membantu anda menyelesaikan masalah ini. Mari kita lihat proses operasi. Selepas membuka dokumen Word, semasa mengedit teks, anda akan melihat gesaan "Hadkan Pengeditan" dipaparkan di sebelah kanan halaman, seperti yang ditunjukkan dalam rajah di bawah. 2. Anda perlu membatalkan penyuntingan dan anda perlu mengetahui kata laluan yang ditetapkan Klik "Stop Protection" di bawah gesaan pop timbul, seperti yang ditunjukkan dalam rajah di bawah. 3. Kemudian masukkan kata laluan dalam kotak dialog "Unprotect Document" dan klik OK, seperti yang ditunjukkan dalam rajah di bawah.

Kaedah khusus untuk mengedit sari kata menegak dalam Edius Kaedah khusus untuk mengedit sari kata menegak dalam Edius Mar 28, 2024 pm 02:52 PM

1. Buat persiapan. Import sekeping bahan ke dalam pustaka bahan dan seretnya ke garis masa. 2. Klik butang [T] pada trek garis masa, pilih untuk menambah sari kata pada trek 1T, dan anda akan memasuki halaman penyuntingan sari kata Operasi adalah seperti yang ditunjukkan dalam gambar: 3. Di sini anda boleh menulis kandungan teks yang kami mahu. Jelas sekali sarikata ditulis secara mendatar. Sekarang mari kita lihat cara melaksanakan sari kata menegak. Jangan tulis kandungan lagi, pilih [Insert - Text - Vertical] seperti yang ditunjukkan dalam gambar: 4. Sekarang tulis perkataan dan ia akan disusun secara menegak. Selepas melaraskan kedudukan, saiz, fon, warna dan maklumat lain sarikata, klik Simpan di sudut kiri atas tetingkap.

Adakah easyui pemalam jquery? Adakah easyui pemalam jquery? Jul 05, 2022 pm 06:08 PM

easyui ialah pemalam jquery. easyui ialah pemalam antara muka UI bahagian hadapan berdasarkan JQuery, yang digunakan untuk membantu pembangun web dengan lebih mudah mencipta antara muka UI yang kaya dengan ciri dan cantik. easyui ialah rangka kerja yang menyokong halaman web HTML5 dengan sempurna, yang boleh membantu pembangun menjimatkan masa dan skala pembangunan web.

Bagaimana untuk mengedit mesej pada iPhone Bagaimana untuk mengedit mesej pada iPhone Dec 18, 2023 pm 02:13 PM

Apl Mesej asli pada iPhone membolehkan anda mengedit teks yang dihantar dengan mudah. Dengan cara ini, anda boleh membetulkan kesilapan, tanda baca dan juga frasa/perkataan yang salah secara automatik yang mungkin telah digunakan pada teks anda. Dalam artikel ini, kita akan belajar cara mengedit mesej pada iPhone. Cara Mengedit Mesej pada iPhone Diperlukan: iPhone menjalankan iOS16 atau lebih tinggi. Anda hanya boleh mengedit teks iMessage pada apl Messages, dan kemudian hanya dalam masa 15 minit selepas menghantar teks asal. Teks bukan iMessage tidak disokong, jadi ia tidak boleh diambil atau diedit. Lancarkan apl Mesej pada iPhone anda. Dalam Mesej, pilih perbualan dari mana anda ingin mengedit mesej

Analisis mendalam tentang tetapan Bahasa Cina PyCharm: meningkatkan pengalaman penyuntingan kod Analisis mendalam tentang tetapan Bahasa Cina PyCharm: meningkatkan pengalaman penyuntingan kod Jan 27, 2024 am 10:30 AM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) Python yang berkuasa yang digunakan secara meluas dalam pembangunan Python. Ia bukan sahaja menyediakan fungsi penyuntingan kod yang kaya, tetapi juga mempunyai alatan berkuasa untuk gesaan pintar, penyahpepijatan, pengurusan versi, dsb. Dalam PyCharm, tetapan bahasa Cina boleh menjadikan penyuntingan kod kami lebih lancar dan lebih mudah. Artikel ini akan memperkenalkan tetapan Cina dalam PyCharm secara terperinci dan memberikan beberapa contoh kod khusus. Pasang pek bahasa Pertama, dalam tetapan PyCharm, kita perlukan

See all articles