1

編集モードと追加モードで列を表示および非表示にする方法はありますか?サンプルコードに表示されます。追加および編集モードで単価を表示し、表示モードで非表示にしたい。お知らせ下さい。しかし、以下はグリッドを縮小します。まだ100%にしたいです。ユーザーが[キャンセル]をクリックした場合、どのイベントを使用する必要がありますか。

@model IEnumerable<Kendo.Mvc.Examples.Models.ProductViewModel>

@(Html.Kendo().Grid(Model)    
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ProductID);
        columns.Bound(p => p.ProductName);
        columns.Bound(p => p.UnitPrice);

    })
    .Groupable()
    .Pageable()
    .Sortable()
    .Scrollable()
    .Filterable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Products_Read", "Grid"))
    )
     .Events(ev => ev.DataBound("onDataBound").Edit("onEdit"))
)


<script type="text/javascript">

function onEdit(e) {
var grid = $('#Product').data('kendoGrid');
        if (!e.model.isNew()) {
            grid.showColumn(2);
        }
        else
        {
            grid.showColumn(2);
        }

function onDataBound(e) {
    var grid = $('#Product').data('kendoGrid');
    grid.hideColumn(2);
</script>
4

2 に答える 2

3

実際のpopupモードでは、元の非表示の列は非grid表示になりません。関数を削除すれば、それでonEdit十分です。列の初期化で を削除してdataBoundに設定することもできます。hidden

@model IEnumerable<Kendo.Mvc.Examples.Models.ProductViewModel>

@(Html.Kendo().Grid(Model)    
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ProductID);
        columns.Bound(p => p.ProductName);
        columns.Bound(p => p.UnitPrice).Hidden( true );

    })
    .Groupable()
    .Pageable()
    .Sortable()
    .Scrollable()
    .Filterable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Products_Read", "Grid"))
    )
)

http://jsfiddle.net/OnaBai/B2Ses/Freightで、列が列モードで非表示になっているがポップアップで表示される方法を確認してください(編集と作成の両方で)。

于 2013-03-11T13:50:06.347 に答える
1

.HtmlAttributes 関数を使用した他のグリッド プロパティ (ツールバーなど) については、次を使用できます。

.ToolBar(toolbar => toolbar.Custom().Name("New item").HtmlAttributes(style = ViewData["isThisPropertyAllowed"] }))

コントローラーでは、たとえば次のように使用します。

ViewData["isThisPropertyAllowed"] =  (User.IsInRole("ADMIN")?"":"display:none");
于 2014-01-24T20:24:59.920 に答える