ホームページ ウェブフロントエンド jsチュートリアル EasyUIでのdataGridのインライン編集例の詳細説明

EasyUIでのdataGridのインライン編集例の詳細説明

Jan 06, 2018 am 11:00 AM
easyui 編集

この記事は、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;
          }
        }
    });   
  });
ログイン後にコピー

関連する推奨事項:

Easyui Datagridカスタムボタン列の詳細な説明

データの各行にアクションボタンを追加するEasyUIのDataGridの例の詳細な説明

EasyUiコントロールのDatagridの詳細な説明

以上がEasyUIでのdataGridのインライン編集例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tencent Docs でドキュメントを編集するにはどうすればよいですか? -Tencent ドキュメント編集ドキュメント チュートリアル ガイド Tencent Docs でドキュメントを編集するにはどうすればよいですか? -Tencent ドキュメント編集ドキュメント チュートリアル ガイド Mar 19, 2024 am 08:19 AM

Tencent Docs でドキュメントを編集する方法を知っている人はいますか? 知らなくても問題ありません。今日は、編集者が Tencent Docs でドキュメントを編集する方法を図で詳しく説明します。お役に立てれば幸いです。 Tencent ドキュメントでのドキュメント編集の詳細な図による説明 1. まず、Tencent ドキュメントに直接入力し (お持ちでない場合は、今すぐダウンロードしてください!)、直接ログインします (QQ と TIM の 2 つのログイン方法がサポートされています) 2. ログイン後、右上隅の [追加] をクリックして、オンライン ドキュメント、オンライン フォーム、新しいフォルダーなどを直接作成します! 3. 次に、必要に応じて情報を入力します。

削除されたホストファイルを復元する方法 削除されたホストファイルを復元する方法 Feb 22, 2024 pm 10:48 PM

タイトル: 削除後に hosts ファイルを復元する方法 概要: hosts ファイルはオペレーティング システムの非常に重要なファイルであり、ドメイン名を IP アドレスにマップするために使用されます。誤って hosts ファイルを削除すると、特定の Web サイトにアクセスできなくなったり、その他のネットワークの問題が発生したりする可能性があります。この記事では、Windows および Mac オペレーティング システムで誤って削除したホスト ファイルを復元する方法を紹介します。テキスト: 1. Windows オペレーティング システムでホスト ファイルを復元する Windows オペレーティング システムでのホスト ファイル

iPhoneでホーム画面ページを編集する方法 iPhoneでホーム画面ページを編集する方法 Feb 14, 2024 pm 02:00 PM

Apple では、ホーム画面のページをいつでも並べ替えたり、自由に削除したりして、ホーム画面をすばやく変更できます。こうすることで、複数のアプリやウィジェットを 1 つずつドラッグして削除することなく、簡単に非表示にすることができます。この記事ではiPhoneのホーム画面でページを編集する方法を解説します。 CONTENTS[SHOW] iPhone でホーム画面のページを編集する方法を示します。 ホーム画面を編集して、ページを並べ替えたり、ホーム画面内の特定のページを非表示/再表示したり、ページを完全に削除したりすることができます。 iPhone ホーム画面の編集を開始するには、ホーム画面の空いている領域を長押しします。ホーム画面がジッター モードになったら、画面の下部にあるドットの列をタップします。すべてのホーム画面がグリッド形式で表示されるはずです。オプション 1: ホーム画面上

Word文書が編集できない場合の対処法 Word文書が編集できない場合の対処法 Mar 19, 2024 pm 09:37 PM

文書を編集した後、次回の編集や変更に便利なように文書を保存します。編集した文書をクリックして直接変更できる場合もありますが、何らかの理由で、いくら操作しても応答がない場合もあります。 Word 文書をクリックしてもコマンドは実行されません。Word 文書を編集できない場合はどうすればよいですか?心配しないでください。エディターがこの問題を解決するのに役立ちます。操作プロセスを見てみましょう。 Word 文書を開いてテキストを編集すると、次の図に示すように、ページの右側に「編集を制限する」というプロンプトが表示されます。 2. 編集をキャンセルする必要があり、設定したパスワードを知る必要があるため、下図に示すように、ポップアップ プロンプトの下にある [保護の停止] をクリックします。 3. 次の図に示すように、[ドキュメントの保護解除] ダイアログ ボックスにパスワードを入力し、[OK] をクリックします。

Ediusで縦字幕を編集する具体的な方法 Ediusで縦字幕を編集する具体的な方法 Mar 28, 2024 pm 02:52 PM

1. 準備をします。マテリアルをマテリアル ライブラリにインポートし、タイムラインにドラッグします。 2. タイムライントラックの [T] ボタンをクリックし、1T トラックに字幕を追加することを選択すると、字幕編集ページに移動します. 操作は図に示すとおりです: 3. ここで、テキストコンテンツを書き込むことができます。欲しい。字幕が横書きであることがわかります。では、垂直字幕を実装する方法を見てみましょう。まだ内容を書かないで、図のように [挿入 - テキスト - 縦書き] を選択します。 4. 単語を書き込むと、縦方向に配置されます。字幕の位置、サイズ、フォント、色などを調整したら、ウィンドウの左上隅にある「保存」をクリックします。

easyui は jquery プラグインですか? easyui は jquery プラグインですか? Jul 05, 2022 pm 06:08 PM

easyui は jQuery プラグインです。 easyui は JQuery に基づくフロントエンド UI インターフェイス プラグインで、Web 開発者が機能豊富で美しい UI インターフェイスをより簡単に作成できるようにするために使用されます。 easyui は HTML5 Web ページを完全にサポートするフレームワークで、開発者が Web 開発の時間と規模を節約するのに役立ちます。

iPhoneでメッセージを編集する方法 iPhoneでメッセージを編集する方法 Dec 18, 2023 pm 02:13 PM

iPhone のネイティブ メッセージ アプリを使用すると、送信されたテキストを簡単に編集できます。このようにして、間違いや句読点を修正したり、テキストに適用された可能性のある間違った語句や単語を自動修正したりすることができます。この記事では、iPhone でメッセージを編集する方法を学びます。 iPhone でメッセージを編集する方法 必須: iOS16 以降を実行している iPhone。 iMessage テキストはメッセージ アプリでのみ編集でき、元のテキストを送信してから 15 分以内に限り編集できます。 iMessage 以外のテキストはサポートされていないため、取得または編集できません。 iPhone でメッセージ アプリを起動します。 [メッセージ] で、メッセージを編集する会話を選択します

PyCharm の中国語設定の詳細な分析: コード編集エクスペリエンスの向上 PyCharm の中国語設定の詳細な分析: コード編集エクスペリエンスの向上 Jan 27, 2024 am 10:30 AM

PyCharm は、Python 開発で広く使用されている強力な Python 統合開発環境 (IDE) です。豊富なコード編集機能を提供するだけでなく、インテリジェントなプロンプト、デバッグ、バージョン管理などのための強力なツールも備えています。 PyCharm では、中国語設定によりコード編集がよりスムーズかつ便利になります。この記事では、PyCharm の中国語設定を詳しく紹介し、具体的なコード例をいくつか示します。言語パックをインストールする まず、PyCharm の設定で、次のものが必要です。

See all articles