2013-08-27 68 views
0

我目前面臨的問題是Kendo UI網格視圖同時使用ClientRowTemplate和ColumnMenu。Kendo GridView在同一時間使用ClientRowTemplate和ColumnMenu不起作用

@(Html.Kendo().Grid<ByCompanyParticipants>() 
    .Name("grdParticipantsList") 
    .Columns(cols => 
    { 
     cols.Bound(bcp => bcp.IsAssigned) 
      .Width(40) 
      .Title("Assigned") 
      .Sortable(false) 
      .Groupable(false) 
      .Filterable(false) 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }) 
      .HeaderTemplate("<div class='divParticipantsCheckAll'>" + 
           "<form class='frmParticipantsCheckAll'>" + 
           "<input id='chkParticipantsCheckAll' type='checkbox' onclick='ToggleParticipantCheckBoxes()' />" + 
           "</form>" + 
          "</div>"); 

     cols.Bound(bcp => bcp.CompanyName) 
      .Title("Company") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.FirstName) 
      .Title("First Name") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.LastName) 
      .Title("Last Name") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.Title) 
      .Title("Position") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.City) 
      .Title("City") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.MSO) 
      .Title("MSO") 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.UserID) 
      .Title("User Role") 
      .Filterable(false) 
      .Sortable(false) 
      .Groupable(false) 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 

     cols.Bound(bcp => bcp.UserID) 
      .Title("Co-Owner") 
      .Width(84) 
      .Filterable(false) 
      .Sortable(false) 
      .Groupable(false) 
      .HeaderHtmlAttributes(new { @class = "thGreenGridColumnHeader" }); 
    }) 
    .ClientRowTemplate(
    "<tr class='byUserParticipantRow'>" + 
     "#=InjectParticipantGridGroupCells()#" + 
     "<td>" + 
      "<div class='divParticipantsCheckBox'>" + 
       "<form>" + 
        "<input id='chkParticipant#:UserID#' type='checkbox' class='chkParticipantsCheckBox' onclick='ToggleParticipantCheckBox(#:UserID#)' #:(IsAssigned != null && IsAssigned) ? 'checked=\"true\"' : \"\"# />" + 
       "</form>" + 
      "</div>" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#:CompanyName#" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#:FirstName#" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#:LastName#" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#=(Title == null ? '' : Title)#" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#=(City == null ? '' : City)#" + 
     "</td>" + 
     "<td class='trGridRow'>" + 
      "#=(MSO == null ? '' : MSO)#" + 
     "</td>" + 
     "<td>" + 
      "<div class='divParticipantUserRole'>" + 
      "</div>" + 
     "</td>" + 
     "<td>" + 
      "<div class='divIsParticipantCoOwner'>" + 
       "<form>" + 
        "<input class='chkIsParticipantCoOwner' type='checkbox' />" + 
       "</form>" + 
      "</div>" + 
     "</td>" + 
    "</tr>" 
    ) 
    .DataSource(ds => 
    { 
     ds.Ajax() 
     .Read(read => 
     { 
      read.Action("GetProjectParticipants", "ProjectConfiguration") 
       .Data("GetProjectParticipantParameters"); 
     }) 
     .ServerOperation(false); 
    }) 
    .Events(e => 
    { 
     e.DataBound("OnByUserParticipantGridDataBound"); 
    }) 
    .Filterable() 
    .ColumnMenu() 
    .Groupable() 
    .HtmlAttributes(new { style = "height: 285px;" }) 
    .Scrollable() 
    .AutoBind(false) 
    .Selectable(se => se.Mode(GridSelectionMode.Single)) 
    .Sortable() 
) 

下面是我在做複製問題的步驟:

A.遵守有關網格視圖的列和標題的列表。

enter image description here

B.收起使用柱菜單的複選框欄(左側第一列)。

enter image description here

C.小組由來自該列表的列(X姓,名,公司名等),並注意到這是早期隱藏使用列菜單複選框欄再次可見,儘管它的頭不存在。

enter image description here

回答

1

嗨,這只是與層次電網爲例,

@using (Html.BeginForm("GridListView", "Test", FormMethod.Post)) 
{ 

    @(Html.Kendo().Grid<TwoModelInSinglePageModel.SampleModel>() 
    .Name("grid12") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.studentclass).HeaderTemplate("<input id='selectall' class='chkbxq' type='checkbox' />").ClientTemplate("<input id='checkbox_#=inx#' class='chkbxq' type='checkbox' />"); 
     columns.Bound(p => p.SampleDescription); 
     columns.Bound(p => p.SampleCode); 
     columns.Bound(p => p.SampleItems); 
    }) 
     .ClientDetailTemplateId("client-template") 

     .Pageable() 
      .Navigatable() 
      .Sortable() 
      .Groupable() 
     .DataSource(dataSource => dataSource 
     .Ajax() 
      .Model(model => model.Id(p => p.inx)) 
      //.PageSize(1) 
      .Read(read => read.Action("Read", "Test")) 
    ) 
) 
} 

客戶端模板

<script id="client-template" type="text/kendo-tmpl"> 

     @(Html.Kendo().Grid<TwoModelInSinglePageModel.SampleGridModel>() 
        .Name("gridChild_#=inx#") 
      .Columns(columns => 
      { 
       columns.Template(@<text></text>).ClientTemplate("<input id='checkboxChild_#=inx#' 'class='checkchild' onclick='UpdateIdinHF(this);' type='checkbox'/>").Width(30); 
       columns.Bound(o => o.SampleDescriptionGrid).Width(100); 
       columns.Bound(o => o.SampleCodeGrid).Width(100); 
       columns.Bound(o => o.SampleItemsGrid).Width(100); 
      }) 
      .DataSource(dataSource => dataSource 
       .Ajax() 
       .PageSize(5) 
       .Read(read => read.Action("ReadGrid", "Test")) 
      ) 
      .ToClientTemplate() 
    ) 
</script> 

型號

public class SampleGridModel 
    { 
     public int inx { get; set; } 
     public bool studentclassGrid { get; set; } 
     public string SampleDescriptionGrid { get; set; } 
     public string SampleCodeGrid { get; set; } 
     public string SampleItemsGrid { get; set; } 
    } 

public class SampleModel 
    { 
     public int inx { get; set; } 
     public bool studentclass { get; set; } 
     public string SampleDescription { get; set; } 
     public string SampleCode { get; set; } 
     public string SampleItems { get; set; } 

     public IEnumerable<SampleGridModel> sampleGridModel { get; set; } 
    } 
相關問題