在JQuery或JavaScript中的网格头上生成onClick事件
我有一个KendoUI网格,我想为其标题行添加一个click事件,并获取单击单元格的文本值:在JQuery或JavaScript中的网格头上生成onClick事件,javascript,jquery,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Jquery,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我有一个KendoUI网格,我想为其标题行添加一个click事件,并获取单击单元格的文本值: @(Html.Kendo() .Grid<Timeshet.Web.Models.UserWeekModel>() .Name("grid") .Sortable(sortable => sortable.AllowUnsort(false)) .Columns(columns => { co
@(Html.Kendo()
.Grid<Timeshet.Web.Models.UserWeekModel>()
.Name("grid")
.Sortable(sortable => sortable.AllowUnsort(false))
.Columns(columns =>
{
columns.Bound(t => t.Name);//.ClientTemplate("#=Name#" + " " + "<div class='jobDescriptionInfo-img' onclick='showDescription()' title='Job Description' > </div>");
columns.Bound(t => t.JobDescription).Visible(false);
columns.Bound(t => t.LastFri).ClientTemplate("#=LastFri#").HtmlAttributes(new { @class = "last-week" }).Hidden().Sortable(false);
columns.Bound(t => t.Monday).ClientTemplate("#if (Monday.HasNotes) {#" + "#=Monday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Monday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Monday.Style#" });
columns.Bound(t => t.Tuesday).ClientTemplate("#if (Tuesday.HasNotes) {#" + "#=Tuesday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Tuesday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Tuesday.Style#" });
columns.Bound(t => t.Wednesday).ClientTemplate("#if (Wednesday.HasNotes) {#" + "#=Wednesday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Wednesday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Wednesday.Style#" });
columns.Bound(t => t.Thursday).ClientTemplate("#if (Thursday.HasNotes) {#" + "#=Thursday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Thursday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Thursday.Style#" });
columns.Bound(t => t.Friday).ClientTemplate("#if (Friday.HasNotes) {#" + "#=Friday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Friday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Friday.Style#" });
columns.Bound(t => t.Saturday).ClientTemplate("#if (Saturday.HasNotes) {#" + "#=Saturday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Saturday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Saturday.Style#" });
columns.Bound(t => t.Sunday).ClientTemplate("#if (Sunday.HasNotes) {#" + "#=Sunday.Name#" + " " + "<div class='project-note-img' title='Project Notes' > </div>" + "#}else{#" + "#=Sunday.Name#" + "#}#").Sortable(false).HtmlAttributes(new { @Class = "#=Sunday.Style#" });
columns.Command(command => command.Custom("Job Description").Click("showDescription"));
})
.Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single).Type(GridSelectionType.Cell))
.DataSource(source => source.Ajax()
.Batch(true)
.Model(model => model.Id("UserId"))
.Read(read => read.Action("GetData", "Home").Data("additionalData"))
.Update(update => update.Action("UpdateData", "Home").Data("additionalData")
).Events(events => events.RequestEnd("onRequestEnd"))
))
@(Html.Kendo()
.Grid()
.名称(“网格”)
.Sortable(Sortable=>Sortable.alloworst(false))
.列(列=>
{
columns.Bound(t=>t.Name);/.ClientTemplate(“#=Name#“+”);
columns.Bound(t=>t.JobDescription).Visible(false);
columns.Bound(t=>t.LastFri).ClientTemplate(“#=LastFri#”).HtmlAttributes(new{@class=“last week”}).Hidden().Sortable(false);
columns.Bound(t=>t.Monday).ClientTemplate(“#if(Monday.HasNotes){#”+“#”=Monday.Name+++”+“+”+”+“+”)}else{#”+“#=Monday.Name#”+“#”}可排序(false).HtmlAttributes(新的{@Class=“#=Monday.Style});
columns.Bound(t=>t.tuday).ClientTemplate(“#if(tuday.HasNotes){#”+“#”=tuday.Name+++”+“+”+“+”+”)}else{#”+“#=tuday.Name#”+“#”}可排序(false).HtmlAttributes(新的{@Class=“#=tuday.Style});
columns.Bound(t=>t.triday).ClientTemplate(“#if(星期三.HasNotes){#”+“#”=星期三.Name+++”+“+”+“+”+”)}else{#”+“#=星期三.Name#“+”+“#}可排序(false).HtmlAttributes(新的{@Class=“#=星期三.Style#”);
columns.Bound(t=>t.thresday).ClientTemplate(“#if(thresday.HasNotes){#”+“#”=thresday.Name+”+“+”+”+“+”)}else{#”+“#=thresday.Name#”+“##”}可排序(false).HtmlAttributes(新的{@Class=“#=thresday.Style#);
columns.Bound(t=>t.Friday).ClientTemplate(“#if(Friday.HasNotes){#”+“#”=Friday.Name+++”+“+”+“+”+”)}else{#“+”=Friday.Name{#“+”+“#}Friday.Style}”)可排序(false).HtmlAttributes(新的{@Class=“#=Friday.Style});
columns.Bound(t=>t.Saturday).ClientTemplate(“#if(Saturday.HasNotes){#”+“#”=Saturday.Name+++”+“+”+“+”+”)}else{#“+”=Saturday.Name#“+“#”}可排序(false).HtmlAttributes(新的{@Class=“#=Saturday.Style#”);
columns.Bound(t=>t.Sunday).ClientTemplate(“#if(Sunday.HasNotes){#”+“#”=Sunday.Name+++”+“+”+“+”+”)}else{#”+“#=Sunday.Name#”+“#”}可排序(false).HtmlAttributes(新的{@Class=“#=Sunday.Style});
columns.Command(Command=>Command.Custom(“职务描述”)。单击(“showDescription”);
})
.Selectable(s=>s.Enabled(true).Mode(GridSelectionMode.Single).Type(GridSelectionType.Cell))
.DataSource(source=>source.Ajax()
.Batch(真)
.Model(Model=>Model.Id(“UserId”))
.Read(Read=>Read.Action(“GetData”、“Home”).Data(“additionalData”))
.Update(Update=>Update.Action(“UpdateData”、“Home”).Data(“additionalData”)
).Events(Events=>Events.RequestEnd(“onRequestEnd”))
))
我已尝试在document.ready上执行以下操作,但似乎不起作用:
var titles = $("#grid thead tr th");
for (var i = 0, len = titles.length; i < len; i++)
{
titles[i].addEventListener("click", function() {
alert(this.innerHTML);
}, false);
}
var titles=$(“#grid thead trth”);
对于(变量i=0,len=titles.length;i
我还找到了这个解决方案,这正是我想要做的,但我无法真正重构它以供我自己使用,因为我并不完全了解:
我想知道如何在网格标题上触发单击事件
以上网格在浏览器中呈现为HTML的方式如下:
试试这个jquery代码:
$(document).on("click", "th[role='columnheader']", function () {
alert($(this).text());
});
这是表格标题的CSS选择器,如果您将其替换到Vinod的解决方案中,它就会起作用。所有剑道控制都使用某种形式的.k-无论什么
.k-grid table th
{
text-align: center !important;
}
$(document).on("click", ".k-grid table th", function () {
alert($(this).text());
});
那么这里的问题是什么?@VivekParekh它实际上在问题的第一行:)