我目前面临同时使用 ClientRowTemplate 和 ColumnMenu 的 kendo ui 网格视图的问题。
@(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. 观察网格视图上的列和标题列表。
B. 使用列菜单折叠复选框列(左侧第一列)。
C. 按列表中的任何列(x 名字、姓氏、公司名称等)进行分组,并注意之前使用列菜单隐藏的复选框列再次可见,尽管它的标题不存在。