0

グリッドのポップアップ エディターにカスタム テンプレートを使用しているため、編集可能なフィールドのみを表示できます。このテンプレートでは、オートコンプリート入力を使用したいと思います。「動作」しています。コントロールはエディター テンプレートにあり、オート コンプリートが行うべきことを行います。

ただし、変更を保存してもボックスは保存されません。Kendo がモデルのフィールドとしてだけでなく、オート コンプリート コントロールとしても使用していることを確認するにはどうすればよいですか?

グリッド:

@(Html.Kendo().Grid<Receipt>()
    .Name("GridReceipts")
    .Columns(columns => {
        columns.Bound(o => o.Id);
        columns.Bound(o => o.Supplier);
        columns.Bound(o => o.Status);
        columns.Command(c => {
            c.Edit().Text(" ");
            c.Destroy().Text(" ");
        });
    })
    .DataSource(d => d
        .WebApi()
        .Model(m => m.Id(o => o.Id))
        .Create(c => c.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "Receipts" })))
        .Read(c => c.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "Receipts" })))
        .Update(c => c.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "Receipts", id = "{0}" })))
        .Destroy(c => c.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "Receipts", id = "{0}" })))
    )
    .ToolBar(toolbar => toolbar.Create())
    .Editable(e => e.Mode(GridEditMode.PopUp).TemplateName("Receipt"))
    .Deferred()
)

オートコンプリート (エディター テンプレート内):

@model Receipt

<div class="k-edit-label">@Html.LabelFor(m => m.Supplier)</div>
<div class="k-edit-field">
    @(Html.Kendo().AutoCompleteFor(m => m.Supplier)
        .Name("Supplier")
        .DataSource(s => {
            s.Read("Autocomplete", "Suppliers");
        })
        .DataTextField("Name")
        .MinLength(2)
    )
</div>
4

1 に答える 1

2

これを試して:

@(Html.Kendo().AutoComplete()
    .Name("Supplier")
    .DataSource(s => {
        s.Read("Autocomplete", "Suppliers");
    })
    .MinLength(2)
)

AutoCompleteFor を AutoComplete に変更します。カスタム ポップアップの一部でオートコンプリートを使用していますが、すべて正常に動作しています。モデルは、オブジェクト プロパティと同じである .Name("Supplier") にバインドする必要があります。匿名型を指定する必要はありません。

データソースの読み取りに関しては、文字列のリストを返します

これが私の作業コードの例です。

カスタムポップアップ:

@model Charts.Models.Machine

        @(Html.Kendo().AutoComplete()
    .Name("Grupa")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetGroups", "Helper");
        })
        .ServerFiltering(true);
    })
        )

モデル:

public class Machine
    {
        public virtual int ID { get; set; }
        [Required(ErrorMessage = "Pole Grupa nie może być puste.")]
        public virtual string Grupa { get; set; }

    }

データソース読み取り:

public ActionResult GetGroups()
{
    IEnumerable<string> list = new GroupsRepository().Select().Select(x => x.Nazwa).Distinct();

    return Json(list, JsonRequestBehavior.AllowGet);
}
于 2014-10-21T10:07:52.843 に答える