0

私がしたいのは、ドロップダウンとセル(編集されていないとき)に会社名のテキストを表示することですが、会社のIDを「保存」をクリックしたときにサーバーに返されるデータにすることです.

次のセルをクリックして編集を続行すると (DDL を含むセルが編集モードを終了する)、その場所の読み取り専用セルに会社名の代わりに ID が表示されることを除いて、すべてが完全に機能します。

この図は、私が何を意味するかを示しています。 ここに画像の説明を入力

これを修正する方法、または必要な機能を実現する別の方法を知っている人はいますか?

エディタ テンプレート

@(Html.Kendo().DropDownList()
.Name("Company")
.DataTextField("Name")
.DataValueField("EnterpriseID")
.BindTo((IEnumerable<BlueGrace.BlueShip.Business.Enterprise.EnterpriseChildListingItem>)ViewBag.RefCarrierLiabilityEnterpriseListing))

コントローラー (ViewBag の人口)

var enterpriseListing = Business.Enterprise.EnterpriseChildListing.Get(false, customIdentity.EnterpriseID, false).ToList();
        ViewBag.RefCarrierLiabilityEnterpriseListing = enterpriseListing;

意見

    @(Html.Kendo().Grid(Model.GlobalDictionary.RefCarrierLiabilityModels)
        .Name("CarrierLiabilityDictionaryGrid")
    .Columns(columns =>
    {
        columns.Bound(item => item.CarrierName)
            .EditorTemplateName("RefCarrierListing").Width(250);
        columns.Bound(item => item.Company)
            .EditorTemplateName("RefCarrierLiabilityEnterpriseListing");
        columns.Bound(item => item.MaxLiability)
            .EditorTemplateName("RefCarrierLiabilityMaxLiability");
        columns.Bound(item => item.IsValueOfGoodsMaxLiability);
        columns.Command(command =>
        {
            command.Destroy();
        }).Width(100);
    })
    .ToolBar(toolbar =>
    {
        toolbar.Create();
        toolbar.Save();
    })
    .Editable(editable => editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Top))
    .Pageable()
    .Sortable()
    .Scrollable()
    .Filterable()
    .Resizable(resize => resize.Columns(true))
    .Reorderable(reorder => reorder.Columns(true))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .ServerOperation(false)
        .Model(model =>
        {
            model.Id(i => i.RefCarrierLiabilityID);
            model.Id(i => i.RefCarrierID);
        })
        .Read(read => read.Action("GetCarrierLiabilities", "Dictionary"))
        .Create(create => create.Action("CreateCarrierLiabilities", "Dictionary"))
        .Update(update => update.Action("UpdateCarrierLiabilities", "Dictionary"))
        .Destroy(delete => delete.Action("DeleteCarrierLiabilities", "Dictionary"))
    )
)
4

1 に答える 1

1

グリッドは、ForeignKey列と呼ばれる機能を提供します。これは、必要なものだと思います。このデモを確認してください (ソースを .cshtml に変更して、必要なことをすべて確認してください)。

columns.ForeignKey(p => p.EmployeeID, (System.Collections.IEnumerable)ViewData["employees"], "EmployeeID", "EmployeeName");

http://demos.kendoui.c​​om/web/grid/foreignkeycolumn.html

于 2012-11-06T20:04:16.733 に答える