2017-07-12 6 views
0

私は過去2日間、多くの成功なしにそれを理解しようとしたので、誰かが私を助けてくれることを願っています。剣道のグリッドインライン編集でドロップダウンリストの現在の値が削除されます

問題:ドロップダウンリストでインライン編集を使用する剣道グリッドがあります。私がドロップダウンを選択すると、私のアイテムを取得し、値を更新すると、セットが得られます - すべていいよ!しかし、最初にアイテムを編集すると、グリッドに表示されている現在の値がドロップダウンボックスから消えます(フィールドを更新しないと、値は変わりません)。

マイコード:

schema: { 
    model: { 
     id: "Id", 
     fields: { 
      Id: { type: "number" }, 
      ... 
      Relationship: { type: "string" }, 
      ... 
     } 
    } 
} 


columns: 
[ 
    { field: "Firstname", title: "Firstname" }, 
    .... 
    { field: "RelationValue", title: "Relationship", editor: GetRelationships, 
    template: function (data) { return "<span title='" + data.Relationship + "'>" 
    + data.Relationship + "</span>" } }, 
    ... 
    { command: ["edit"], title: "&nbsp;", width: "110px" } 
], 
editable: "inline" 




function GetRelationships(container, options) { 
     $('<input data-text-field="RelationValue" data-value-field="RelationId" data-bind="value:' + options.field + '"/>') 
      .appendTo(container) 
      .kendoDropDownList({ 
       dataTextField: "RelationValue", 
       dataValueField: "RelationId", 
       dataSource: { 
        transport: { 
         read: { 
          dataType: "jsonp", 
          url: "http://localhost:55719//HouseholdMembers/_GetRelationships", 
         } 
        } 
       }, 
       change: function (e) { 
        var dataItem = e.sender.dataItem(); 
        options.model.set("Relationship", dataItem.RelationValue); 
       } 
      }); 
    } 

一覧レイアウトドロップダウンのための

public JsonResult _GetRelationships() 
{ 
    List<Relations> Relationships = new List<Relations>(); 
    Relationships.Add(new Relations() { RelationId = 1, RelationValue = "Partner" }); 

    return this.Jsonp(Relationships); 
} 

すべてのヘルプは大歓迎です:)

+0

このために道場を作ってください。 – Zeeshan

+0

道場は何ですか?私は試して、オンラインの作業例を複製するが、私はどのように私のデータとcrusのアクションをmvcコントローラから取得するかわからない –

+0

ちょうどいくつかの模擬データでそれを行う。私。この例を編集することができますhttp://dojo.telerik.com/Ug​​aDaP – Zeeshan

答えて

0

をあなたのカスタムエディタのコードに自分でドロップダウンリストの値を設定する必要があります。次のコードを使用してJSスクリプトでコードGetRelationshipsを置き換え:

function GetRelationships(container, options) { 
     $('<input data-text-field="RelationValue" data-value-field="RelationId" data-bind="value:' + options.field + '"/>') 
      .appendTo(container) 
      .kendoDropDownList({ 
       dataTextField: "RelationValue", 
       dataValueField: "RelationId", 
       value: options.model.RelationId, // THIS IS THE CHANGE I MADE 
       dataSource: { 
        transport: { 
         read: { 
          dataType: "jsonp", 
          url: "http://localhost:55719//HouseholdMembers/_GetRelationships", 
         } 
        } 
       }, 
       change: function (e) { 
        var dataItem = e.sender.dataItem(); 
        options.model.set("Relationship", dataItem.RelationValue); 
       } 
      }); 
    } 

をご参考のために、私は編集者としてドロップダウンでグリッドインライン編集のためDOJOを働いて作成しました。ここでそのフィドルにアクセスできますInline Grid Editing with Dropdown As editor template

これがうまくいかない場合は教えてください。さもなければ、これを容認された解決としてマークすることを忘れないでください。

+0

このソリューションで問題が解決しましたか? – Zeeshan

+0

助けを借りてくれてありがとう、しかし、残念ながら私はまだそれを '価値'と一緒に働かせることはできません。グリッド列にテンプレートを使用しているのでしょうか?私はすでに存在することを示す値を得るためにこれを使用しなければなりませんでした。 –

+0

あなたは正しいです!問題はテンプレートのために発生していました。私はあなたのテンプレートでこの作業をするために、私の答えに必要な調整を行いました。また、必要な調整でフィドルを更新します。 http://dojo.telerik.com/Ug​​aDaP/8 – Zeeshan

関連する問題