2016-05-25 7 views
1

質問タイトルで述べたように、Shield-uiグリッドの編集可能なセルのテキストボックスが破棄されるとすぐにイベントをトリガする必要があります。彼らのドキュメンテーションの解決策を見つけることができませんでした。ありがとうございました。ここでシールド-iiグリッドセルのテキストボックスが破損したときのイベントのトリガ方法

が私のコードで、これまでに...

$("#allTransGrid").shieldGrid({ 
            dataSource: { 
             data: datad, 
             schema: { 
              fields: { 
               mbr_id: {path: "mbr_id", type: String}, 
               lon_id: {path: "lon_id", type: String}, 
               center_name: {path: "center_name", type: String}, 
               grp_name: {path: "grp_name", type: String}, 
               mbr_name: {path: "mbr_name", type: String}, 
               lon_amt: {path: "lon_amt", type: Number}, 
               lon_int_amt: {path: "lon_int_amt", type: Number}, 
               loan_total: {path: "loan_total", type: Number}, 
               ind_inst: {path: "ind_inst", type: Number}, 
               today_pay: {path: "today_pay", type: Number, nullable: false}, 
               lon_id_as: {path: "lon_id_as", type: Number} 
              } 
             } 
            }, 
            sorting: { 
             multiple: true 
            }, 
            paging: { 
             pageSize: 12, 
             pageLinksCount: 10 
            }, 
            selection: { 
             type: "row", 
             multiple: true, 
             toggle: false 
            }, 
            columns: [ 
             {field: "mbr_id", width: "100px", title: "Member ID"}, 
             {field: "lon_id", width: "100px", title: "Loan ID"}, 
             {field: "center_name", title: "Center Name", width: "100px"}, 
             {field: "grp_name", title: "Group Name", width: "70px"}, 
             {field: "mbr_name", title: "Member Name", width: "170px"}, 
             {field: "lon_amt", title: "Loan Amount", width: "100px"}, 
             {field: "lon_int_amt", title: "Interest", width: "100px"}, 
             {field: "loan_total", title: "Total", width: "80px"}, 
             {field: "ind_inst", title: "Installment Amount", width: "120px"}, 
             {field: "today_pay", title: "Today Payment"} 
            ], 
            events: { 
             editorCreating: function (e) { 
              if (e.field == "ind_inst") { 
               e.options = {enabled: false, max: 1000}; 
              } 
              if (e.field == "loan_total") { 
               e.options = {enabled: false, max: 500000}; 
              } 
              if (e.field == "lon_int_amt") { 
               e.options = {enabled: false, max: 100000}; 
              } 
              if (e.field == "lon_amt") { 
               e.options = {enabled: false, max: 100000}; 
              } 
              if (e.field == "mbr_name") { 
               e.options = {enabled: false}; 
              } 
              if (e.field == "grp_name") { 
               e.options = {enabled: false}; 
              } 
              if (e.field == "center_name") { 
               e.options = {enabled: false}; 
              } 
              if (e.field == "lon_id") { 
               e.options = {enabled: false}; 
              } 
              if (e.field == "mbr_id") { 
               e.options = {enabled: false}; 
              } 
              if (e.field == "today_pay") { 
               e.options = {max: 10000}; 
              } 
             }, 
             detailCreated: function (e) { 
              $.ajax({ 
               url: "PaymentCatcherGroupBy", 
               cache: false, 
               dataType: 'JSON', 
               data: {loan_id: e.item.lon_id_as, c_id: center_id}, 
               success: function (data) { 
                $("<div/>") 
                  .appendTo(e.detailCell) 
                  .shieldGrid({ 
                   dataSource: {data: data}, 
                   sorting: { 
                    multiple: true 
                   }, 
                   paging: { 
                    pageSize: 5 
                   }, 
                   columns: [ 
                    {field: "installment_num", title: "Week", editable: false}, 
                    {field: "installmentAmount", title: "Installment Amount", editable: false}, 
                    {field: "paidAmount", title: "Paid Amount", editable: false}, 
                    {field: "dueDate", title: "Date Paid", type: Date, editable: false} 
                   ], editing: {enabled: false} 
                  }); 
               }, error: function (jqXHR, textStatus, errorThrown) { 
                alert('error'); 
               } 
              }); 

             }, 
             command: function (e) { 
//selectionChanged doesnt work here.... 
              if (e.commandName == "selectionChanged") { 
               var toBeSelected = e.toBeSelected; 
               console.log(toBeSelected); 
               // e.cancel = true; 
              } 

             } 
            }, 
            editing: { 
             enabled: true, 
             event: "doubleclick", 
             type: "cell" 
            }, 
            scrolling: true, 
            height: 600 
           }); 

私はイベントをトリガする必要があるテキストボックスの失われたフォーカスした後:

enter image description here

答えて

3

破壊は一切ありません編集モードのときに、コントロール内のいずれかのエディタに関連付けられたイベントです。 コマンドイベントを購読する最終目標に応じて、1つのオプションがあります。 http://www.shieldui.com/documentation/grid/javascript/api/events/command 編集後に保存時にトリガーする必要があります。 これがオプションでない場合は、その後の最終結果が何であるかに関する追加情報をご提供ください。

+0

実際には、セル値を変更した直後にイベントをトリガする必要があります。クリックされたセルにはありません。それは私がセル内のテキストボックスを破壊した後のイベントについて尋ねる方法です。 'selectionChanged'イベントはこの場合役に立ちません。 –

+0

コードサンプルで質問を更新しました... –

+1

この目的のために、カスタムエディタを作成し、入力コントロールのクライアントイベントに登録することによって、すべてのトラッキング/通知を処理することができます。 これは次のとおりです。 http://jsbin.com/yujujoteco/edit?html,output –

関連する問題