2013-03-11 192 views
0

有沒有什麼方法可以顯示和隱藏顏色onEdit和Add模式。如示例代碼中的顯示。我想在添加和編輯模式下顯示單價,並隱藏在查看模式下。請指教。但是,以下將縮小網格。我想使它仍然是100%。如果用戶點擊取消,我應該使用什麼事件。隱藏並顯示kendo ui網格列

@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> 

回答

2

其實在原來gridpopup模式隱藏的列不隱藏。如果你刪除你的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是如何隱藏在列模式,但可見彈出(無論是編輯和創作)。

1

對於其他網格屬性(工具欄等).HtmlAttributes功能,您可以使用:

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

並在控制器配合使用,例如:

ViewData["isThisPropertyAllowed"] = (User.IsInRole("ADMIN")?"":"display:none"); 
+0

這隻會隱藏列不是標題和頁腳 – 2014-04-08 12:28:24

+0

更好使用.Hidden代替.HTMLAttribute,以便它將隱藏整個列而不僅僅是項目。 .Hidden(Convert.ToBoolean(ViewData [「isThisPropertyAllowed」])) 您可以發送「true」或「false」 – 2014-04-08 12:34:45