2016-12-07 19 views
0

今はグリッドに表示されていない詳細を表示するためにウィンドウを使用しています。ウィンドウ内に独自のカスタムエディタを作成して、詳細を隠して入力に置き換えます。剣道グリッド - 更新機能付きウィンドウテンプレートボタン

残念ながら、私は剣道ツールバーの更新ボタンと同じ機能を持つように更新ボタンを得ることができません。

私は完全に動作する私の作成のためのトランスポートとパラメータマップを使用しています。私は、私ができなかったアップデートを打つことができればいいだけです。ここで

テンプレートのコードの抜粋です:

<li><b>Change Control Objective</b></li> 
<li><textarea type="text" class="k-textbox k-input" data-bind="value:ChangeControlObjective">#= ChangeControlObjective #</textarea></li> 
<li><b>Change Control Specifics</b></li> 
<li><textarea type="text" class="k-textbox k-input" data-bind="value:ChangeControlSpecifics">#= ChangeControlSpecifics #</textarea></li> 
<a href="\\#" class="k-button k-button-icontext k-grid-update"><span class="k-update k-icon k-i-tick"></span>Save</a> 

私は私のJSコードを表示することはできませんが、それはこの道場オフに基づいています。http://dojo.telerik.com/abUHI

UPDATE:

を私は保存ボタンのクリックからパラメタマップの更新をヒットすることができますが、新しいデータの代わりに古いデータを更新に送信しています。ここでは、ボタンのクリックのコードは次のとおりです。

$("#saveChanges").click(function() { 
     dataItem.dirty = true; 
     $("#ccrGrid").data('kendoGrid').saveChanges(); 
    }); 

各入力は、データバインド属性を持っており、たParameterMapは、次のようになります。

case "update": 
         var changeControlRequestId = options.ChangeControlRequestID; 
         var changeControlObjective = options.ChangeControlObjective; 
         var changeControlSpecifics = options.ChangeControlSpecifics; 
         var productAssociation; 
         if (options.AccountChangeInfo.ProductAssocation == undefined) { 
          productAssociation = ""; 
         } else { productAssociation = options.ProductAssocation; } 
         var amortization; 
         if (options.AccountChangeInfo.Amortization == undefined) { 
          amortization = ""; 
         } else { amortization = options.Amortization; } 
         var productType; 
         if (options.ProductChangeInfo.ProductType == undefined) { 
          productType = ""; 
         } else { productType = options.ProductType; } 
         var productName; 
         if (options.ProductChangeInfo.ProductName == undefined) { 
          productName = ""; 
         } else { productName = options.ProductName; } 
         var productDescription; 
         if (options.ProductChangeInfo.ProductDescription == undefined) { 
          productDescription = ""; 
         } else { productDescription = options.ProductDescription; } 
         var productContract; 
         if (options.ProductChangeInfo.ProductContractualFeatures == undefined) { 
          productContract = ""; 
         } else { productContract = options.ProductContractualFeatures; } 
         var productBehavior; 
         if (options.ProductChangeInfo.ProductBehavioralAssumptions == undefined) { 
          productBehavior = ""; 
         } else { productBehavior = options.ProductBehavioralAssumptions; } 
         var evaluationBehavior; 
         if (options.ProductChangeInfo.ProductEvaluationBehavior == undefined) { 
          evaluationBehavior = ""; 
         } else { evaluationBehavior = options.ProductEvaluationBehavior; } 
         var productStratification; 
         if (options.ProductChangeInfo.ProductStratificationRoutines == undefined) { 
          productStratification = ""; 
         } else { productStratification = options.ProductStratificationRoutines; } 
         if (content.isreadonly == "True") { 
          alert("you have readonly access"); 
         } 
         else { 
          var urlString = "env=" + content.env + "&allyid=" + content.userId + "&changeRequestID" + changeRequestID + "&changeControlObjective=" + changeControlObjective + "&changeControlSpecifics=" + changeControlSpecifics + 
               "&productAssociation" + productAssociation + "&amortization" + amortization + 
               "&productType" + productType + "&productName" + productName + "&productDescription" + productDescription + 
               "&productContract" + productContract + "&productBehavior" + productBehavior + "&evaluationBehavior" + evaluationBehavior + 
               "&productStratification" + productStratification; 
          return urlString; 

答えて

0

私は数ヶ月前にこのを通過してきました。私はここにあなたのためにこれの簡易版を作成したaslo

Custom editor templatehttp://jsbin.com/qudotag/ を拡張することができる要素をカットする);私の広範な研究パーインターネット全体で剣道のカスタムポップアップの編集を行うための2つのキーソースがあります。一度あなたは主要な概念を把握します。変更が永続化されないため、これは完全には機能しません。これは、グリッドのCRUD操作を定義する必要があるので、動作が期待されます(保存、キャンセルなどが行われたときの動作)。 CRUDに対処する方法

第2のソースで提供されています: Crud with external form

最初に威圧される可能性がありますMVVM(のいくつかのより多くの深さに入るとともに、これらの2の研究いくつかの重い、しかし、その後のために本当に便利剣道とのよりスムーズな作業)があなたを得るでしょう。

編集:実際には、最初のアプローチを使用すると簡単です。キャンセル後にグリッドをリフレッシュして状態を保持する方が簡単です。

+0

クリックしてボタンをクリックして更新を取得することはできましたが、新しいデータを送信するのではなく古いデータを送信しています。これは私のボタンクリック機能です:$( "#saveChanges")。(function#) }); –

+0

には複数の理由があります。モデル/データソースの設定に問題がある可能性があります。サーバーが正しく応答していない可能性があります。エラーを確認するためにChromeコンソールを使用してみてください。最初のアプローチは、すべてのデータ設定が適切に設定されているときにsaveChangesなどを呼び出す必要がなくても、正しく設定されている必要があります。 – Turo

関連する問題