【发布时间】:2014-01-21 12:45:29
【问题描述】:
我正在使用 ASP.NET MVC3、Jquery 和 Kendo UI。
这是我的网格设置的剪辑(我删除了所有不相关的字段):
Html.Kendo()
.Grid<MyProject.Models.Domain.Students>()
.Name("Students")
.Sortable(settings => settings.Enabled(false))
.Filterable(settings => settings.Enabled(false))
.Resizable(resizing => resizing.Columns(true))
.Scrollable(settings => settings.Enabled(true))
.HtmlAttributes(new { style = "font-size: 85%;" })
.Columns(columns =>
{
columns.Bound(o => o.StudentId).Title("StudentId").Hidden();
columns.Bound(o => o.Name).Title("Student Name").Width(200);
columns.Bound(o => o.teacher).Title("Teacher")
.ClientTemplate("#=data.teacher ? teacher.teacherName : ''#").Width(150).Filterable(false);
})
.DataSource(dataSource => dataSource.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(c => c.StudentId);
model.Field(c => c.teacher);
})
.Events(events => events.Error("Field_onError"))
.Read(read => read.Action("_AjaxGetFields", "Student"))
.Update("_AjaxUpdateFields", "Student")
.Destroy("_AjaxDelFields", "Student"))
.Events(events => events.DataBound("Fields_onDataBound")
.Change("onFieldSelect")
.Edit("onFieldEdit")
)
.ToolBar(commands =>
{
commands.Save().HtmlAttributes(new { id = "saveField" });
})
.Scrollable(scrollable => scrollable.Height("375px"))
.Selectable()
.Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell)).Render();
这里是教师下拉的模板:
@(Html.Kendo().DropDownList()
.Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty))
.DataValueField("TeacherId")
.DataTextField("TeacherName")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("_SelectTeacherList", "Teacher").Data("onTeacherDataBinding");
}).ServerFiltering(true);
})
.Events(e => e
.Change("dropdownlist_change")
)
)
我在页面上有另一个不在网格上的下拉菜单。我有一个 jquery 函数,每次下拉更改时都会执行该函数。下拉列表是教师列表。当它发生变化时,我想将网格每一行的教师列设置为在下拉列表中选择的相同值和文本对。
这是我目前所拥有的,你可以看到注释在哪里,我需要放一些代码。我不知道该怎么做:
function teachers_change()
{
var teacherDL = $("#allTeach").data("kendoDropDownList");
teachid = teacherDL.value();
teachName = teacherDL.text();
$("#Students tr").each(function ()
{
var tr = this;
var cells = tr.cells;
//RIGHT HERE IS WHERE I WANT TO GET A REFERENCE TO THE DROP DOWN
//AND SET THE VALUE TO teachid AND THE TEXT TO teachName
});
}
【问题讨论】:
标签: jquery asp.net-mvc asp.net-mvc-3 kendo-ui kendo-grid