栅格列可见性

问题描述:

我有一个剑道网格。我需要有条件地显示最后一列中的链接。我迄今没有找到任何解决方案。通过我创建的解决方案,网格元素根本不显示。 你能帮我一下我想念的地方吗?栅格列可见性

@(Html.Kendo().Grid<GGISServices.Models.SilviPrioViewModel>() 
    .Name("gridSP_" + plotDescriptionId.ToString()) 
    .EnableCustomBinding(true) 
    .Columns(columns => 
    { 
    columns.Bound(c => c.Id).Hidden(); 
    columns.Bound(c => c.ForestWorkGroup).Title(LanguageService.Instance.Translate("ActGroup")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.Activity).Title(LanguageService.Instance.Translate("BActs")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.WorkCode).Title(LanguageService.Instance.Translate("ActCode")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.MeasurementUnit).Title(LanguageService.Instance.Translate("UM")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.Quantity).Title(LanguageService.Instance.Translate("Bqty")).Format("{0:n2}").Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.UnitPrice).Title(LanguageService.Instance.Translate("BUnitCost")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.FinishDate).Title(LanguageService.Instance.Translate("FinishDate")).Format("{0:dd/MM/yyyy}").Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.Remarks).Title(LanguageService.Instance.Translate("BObs")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.ProjectNr).Title(LanguageService.Instance.Translate("ProjectNo")).Filterable(f => f.Multi(true)); 
    columns.Bound(c => c.WorkStatus).Title(LanguageService.Instance.Translate("Status")).Filterable(f => f.Multi(true)); 
    columns.Template(c => c.Id).ClientTemplate(
     @Html.ActionLink(Resources.Common.Text_View, "View", "SilviPrio", new { Area = GGISWeb.AreaModules.ManagementPlan, silviPrioId = "#=Id#" }, new { style = (@userCanView == false ? "visibility: hidden;" : "visibility: visible;") }).ToHtmlString() + "<br/>" + 
     @Html.ActionLink(Resources.Common.Text_Edit, "Edit", "SilviPrio", new { Area = GGISWeb.AreaModules.ManagementPlan, silviPrioId = "#=Id#", plotDescriptionId = plotDescriptionId }, new { style = (@userCanEdit == false ? "visibility: hidden;" : "visibility: visible;") }).ToHtmlString() + "<br/>" + 
     @Html.ActionLink(Resources.Common.Text_Delete, "Delete", "SilviPrio", new { Area = GGISWeb.AreaModules.ManagementPlan, silviPrioId = "#=Id#" }, 
     new { onclick = "return confirm('" + @Resources.Common.Delete_Confirm + "')", style = (@userCanDelete == false ? "visibility: hidden;" : "visibility: visible;") }).ToHtmlString() 
// + "<br/>" + @Html.ActionLink(Resources.Common.PaidWork, "Edit", "PaidWork", new { Area = GGISWeb.AreaModules.SilviPrio, silviPrioId = "#=Id#", plotDescriptionId = plotDescriptionId }, new { style = (@userCanEdit == false ? "visibility: hidden;" : "visibility: visible;") }).ToHtmlString()*@ 
      + "<br/>" + 
      "# if (WorkStatus == " + GGISData.Enums.SilviPrioStatus.Realized + ") { #" + 
       @Html.ActionLink(Resources.Common.PaidWork, "Edit", "PaidWork") + 
       "# } # "   
     ).Title("Action"); 
    }) 

PaidWork链接应该基于WorkStatus出现。 谢谢!

我使用客户端模板很多按钮做一些操作。因为大部分时间我不使用剃刀,所以我在阅读客户模板时遇到了一些困难。不过,我正在给出一个客户端模板,作为指导,我使用了条件逻辑。

columns.Template(t => { }).Width(100) 
    .ClientTemplate("<div class='fontIcon'>" + 
         "#if (AccessControlRow.Approve) {#<div>" + 
           "<a class='athena-view' data-placement='bottom' data-toggle='tooltip' onclick='procurement.getOrder.insertOperationComments(\"Approve\",\"#= data.Id #\", true)' title='" + Html.GetResource(common, "Approval") + "'><i class='fa fa-check fa-grid-default'></i></a>" + 
           "</div>" + 
           "<div>" + 
           "<a class='athena-view' data-placement='bottom' data-toggle='tooltip' onclick='procurement.getOrder.insertOperationComments(\"Reject\", \"#= data.Id #\", true)' title='" + Html.GetResource(common, "Rejection") + "'><i class='fa fa-ban fa-grid-default'></i></a>" + 
          "</div>#}#" + 
         "#if (AccessControlRow.Return) {#<div>" + 
           "<a class='athena-view' data-placement='bottom' data-toggle='tooltip' onclick='procurement.getOrder.insertOperationComments(\"Return\", \"#= data.Id #\", true)' title='" + Html.GetResource(common, "Return") + "'><i class='fa fa-long-arrow-left fa-grid-default'></i></a>" + 
           "</div>#}#" + 
        "</div>").Hidden(!Model.MasterAccessControlRow.Approve); // Here I use some ViewModel value to show or hide the entire column 

如果有什么你不明白,或者你不能使用此代码不要犹豫,以评论。