私は過去 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: " ", 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);
}
どんな助けでも大歓迎です:)
カスタム エディター コードで自分でドロップダウン値を設定する必要があります。GetRelationships
JS スクリプト内のコードを次のコードに置き換えます。
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。
これが機能しない場合はお知らせください。それ以外の場合は、これを承認済みソリューションとしてマークすることを忘れないでください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加