2017-12-26 11 views
1

Uiでは、ポップアップモードで編集用の剣道グリッドを作成しました。変更イベントをバインドしたkendoDropDownListがあります。 changeイベント関数では、同じ剣道グリッド内にあるテキストボックスの値を更新したいと思います。ドロップダウンの変更イベントでテキストボックスの値を更新できません剣道グリッド角度1

私がこれまで試してみました何:

`var uid = this.element.closest("[data-role=window]").data("uid"); 
var model = $("#Grid").data("kendoGrid").dataSource.getByUid(uid); 
model.set("TEXT_BOX_FIELD","Hello");` 

をドロップダウンの編集機能では、私はoptions.model.set("TEXT_BOX_FIELD", "Hello");

を試してみましたが、私もこれを試してみましたので、私はオプションへのアクセス権を持っています両方の上記のアプローチでは、コントロールがchromeデバッガの行を渡しても、値がモデルに設定されないことがわかります。

model.TEXT_BOX_FIELDは、set関数が呼び出された後も空の引用符のままです。 私はこれの理由を理解することができません。

私はまた、このようなモデルに値を設定しようとしました。このように

model.TEXT_BOX_FIELD = "Hello"; 

を私は値が今モデルに設定されているデバッガで見ることができますが、それはに表示されませんグリッドの編集ポップアップウィンドウは、バックグラウンドの剣道グリッドに表示されます。

は、しかし、次のようにポップアップウィンドウでそれを表示するために、私はjqueryのを使用:

$('[name="TEXT_BOX_FIELD"]').val("Hello"); 

これがうまく働いたが、私は、設定された機能が動作しなかった理由を理解することができません。

次のように私は剣道や議論のマニュアルを参照して続いている: https://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/Editing/access-editor-control

https://www.telerik.com/forums/custom-popup-editor-with-additional-fields

https://www.telerik.com/forums/updating-a-textbox-cell-after-drop-down-selection

私はこのタスクを実行するために推奨される方法を知ってほしいです。

編集: スキーマを定義しながら、値を設定する設定機能を防止しreturn falseと検証がありました。最初はテキストボックスの値が空であるため、これがトリガされます。だから私は検証を削除しました。これでset()関数が正しく動作し、UIの値も確認できました。

validation : { 
            requiredCheck : function(
              input) { 
             if (input.is("[name='TEXT_BOX_FIELD']") 
               && input.val() == '') { 
              //alert(input.val()) 
              input 
                .attr(
                  "data-textBoxFieldMsg-msg", 
                  "Text Box cannot be empty"); 
              return false; 
             } 
             return true; 
            } 
           } 

答えて

0

私のソリューション:

まず私はこのようなテキストボックスに値を設定するためにjqueryのを使用:

$('[name="TEXT_BOX_FIELD"]').val("Hello"); 

、その後、私は値を設定するためにモデルの集合関数を呼び出しました

var uid = this.element.closest("[data-role=window]").data("uid"); 
var model = $("#Grid").data("kendoGrid").dataSource.getByUid(uid); 
model.set("TEXT_BOX_FIELD","Hello"); 

今回は空の検証に合格しませんでしたが、そのテキストボックスの値はすでにjQueryのval()関数によって設定されています。

関連する問題