- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Javascript 中设置了一个 Kendo 文本框的值,该值显示在屏幕上,但是当它到达 Controller 时收到一个错误,指出该字段为 null 并且模型状态无效。如何设置文本框的值并保留该值以使模型状态有效?
这是我所拥有的:
当用户从下拉列表中选择一个值时,Javascript 会像这样设置标题的值:
$("#Title").val("WO# " + workOrderID);
文本显示在屏幕上(见下面的屏幕截图)。但是,当用户单击保存按钮时,他们会收到标题不能为空的错误。如果我在 Controller 中查看用户单击保存时点击的方法,我可以看到模型中的 Title 确实为 null,这导致模型状态无效。我添加了 Javascript 以在使用上面的代码设置它之后立即获取 Title 的值并且它是空的。
我尝试了几种不同的方法在 javascript 中设置标题;主要是沿着这样的路线:
alert($("#Title").data("kendoTextBox").value());
并返回“未找到”错误。
那么如何设置 Title 使其不仅出现在屏幕上,而且会被 Controller 识别并且不会使模型状态无效?
从下拉列表中选择工作订单后,标题设置为包含此值,标题现在在屏幕上有一个值:
$("#Title").val("WO# "+ workOrderID);
但是,当用户点击保存并且代码转到 Controller 时,Model State 无效并且 Title 的值为 null:
这是调度程序的代码:
@(Html.Kendo().Scheduler<SchedTasksModel>()
.Name("scheduler")
.Date(DateTime.Today)
.StartTime(DateTime.Parse(string.Format("{0} {1}", DateTime.Today.ToShortDateString(), "07:00")))
.Height(600)
.Views(views =>
{
views.DayView();
views.WeekView(weekView => weekView.Selected(true));
views.MonthView();
views.AgendaView();
})
.Editable(editable => editable.TemplateName("KoorsenEditor"))
.Timezone("Etc/UTC")
.Events(e => { e.Edit("sched_edit"); })
.Resources(resource =>
{
resource.Add(m => m.TaskType)
.Title("Type")
.DataTextField("Text")
.DataValueField("Value")
.DataColorField("Color")
.BindTo(new[]
{
new {Text = "Work Order", Value = 1, Color = "#6eb3fa"},
new {Text = "Event", Value = 2, Color = "#f58a8a"}
});
resource.Add(m => m.TaskSourceId)
.Title("Wo")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(ds => ds.Read(read => read.Action("GetSchedWo", "Sched", new { userID = ViewBag.CurrUser, userType = ViewBag.CurrUsrType })));
resource.Add(m => m.TaskSourceEvtId)
.Title("Evt")
.DataTextField("Name")
.DataValueField("Id")
.BindTo(new[]
{
new {Name = "Meeting", Id = 1},
new {Name = "Vacation", Id = 2},
new {Name = "Sick Time", Id = 3},
new {Name = "Other", Id = 4}
});
resource.Add(m => m.TaskResId)
.Title("Res")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(ds => ds.Read(read => read.Action("GetTechRes", "Sched")));
})
.DataSource(d => d.Model(m =>
{
m.Id(f => f.TaskId);
m.Field(f => f.Title).DefaultValue("");
m.Field(f => f.TaskType).DefaultValue(1);
m.RecurrenceId(f => f.RecurrenceId);
})
.Events(e =>
{
e.Error("error_handler");
e.Sync("onSchedulerSync");
})
.Create("WrkOrdTasksCreate", "Sched")
.Read("WrkOrdTasksRead", "Sched")
.Update("WrkOrdTasksUpdate", "Sched")
.Destroy("WrkOrdTasksDestroy", "Sched")
.Filter(filters => filters.Add(model => model.TaskResId).IsNotEqualTo(0))
))
定义文本框的Editor.cshtml
@(Html.TextBoxFor(model => model.Title, new {@class = "k-textbox", data_bind = "value:title"}))
Javascript 设置标题字段的值
function onWorkOrderChange(e) {
try {
var workOrderID = $("#TaskSourceWoId").data("kendoDropDownList").value();
if ($("#Title").val() == "") {
$("#Title").val("WO# " + workOrderID);
}
} catch (ex) {
alert(ex);
}
}
最佳答案
收到 Telerik 的回复。他们的回答是:
In order to notify the model for the automatically assigned Title value, you will have to trigger the change event of the Title field
对于文本框,我只是将 change() 添加到赋值的末尾:
$("#Title").val("WO# " + workOrderID).change();
这对下拉列表不起作用。我终于在另一个 StackOverflow 页面上找到了它的语法:here
所以在我的例子中,用于下拉列表的代码是:
$("#TaskResId").data("kendoDropDownList").value('@ViewBag.CurrUser');
$("#TaskResId").data("kendoDropDownList").trigger("change");
关于javascript - 如何设置 Kendo 文本框的值并将该值传递给 Controller 以使模型有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45549003/
我正在尝试在 Kendo 网格中获取 Kendo Tree 。 我可以实现获取数据,但不能实现树功能。 下面是相同的链接 http://dojo.telerik.com/oDakE 任何人都可以帮助我
我使用的是 Kendo Treeview ,在 Kendo Treeview 节点中,我嵌入了 Kendo 下拉菜单。 一切正常,下拉列表出现在 Treeview 节点上,但是当我展开 treevie
我在同一页面上有 TreeView 和 Grid,我需要从网格数据填充 TreeView。所以流程是这样的: 用户从下拉列表中选择某项内容并单击按钮 -> Web 服务调用 -> 使用来自 Web 服
我正在尝试在 Treeview 中嵌套一个窗口。我想要这样,当用户选择一个特定的节点时,它会打开一个 Kendo 窗口。有没有人做过这个?我在演示中没有看到太多类似的东西。 我正在使用 mvc 包装器
我想知道是否可以加载 kendo.View(...) 或 kendo.layout(...) 的内容一个单独的 html 文件? 这是剑道的例子Hello World Single Page Appl
我有 Kendo HierarchicalDataSource绑定(bind)到 Kendo 的对象 treeview小部件。 HierarchicalDataSource只返回一个一级深度的 jso
我想为 kendo-grid-react-wrapper 引入类似 kendoDateRangePicker 的东西。有 kendoDatePicker 允许您只选择一个日期而不是两个: filter
我正在尝试将 Kendo UI MVVM 框架与 Kendo UI 拖放机制结合使用;但我很难找到如何将数据从 draggable 对象中删除。 我的代码是这样的...... var viewMode
我正在尝试最新的 Kendo UI Web 版本,以便在我们的应用程序中使用它,特别是网格组件。 如图here网格能够在移动设备或任何浏览器中进行自适应渲染,如果 mobile属性设置为“手机”或“平
Kendo UI Web 和 Kendo UI Core 之间有什么区别 https://www.nuget.org/packages/KendoUIWeb http://www.nuget.org/
我正在尝试将 Kendo UI MVVM 框架与 Kendo UI 拖放机制结合使用;但是我很难找到如何从 draggable 对象中删除数据。 我的代码是这样的…… var viewModel =
我正在尝试最新的 Kendo UI Web 版本,以便在我们的应用程序中使用它,特别是网格组件。 如图here网格能够在移动设备或任何浏览器中进行自适应渲染,如果 mobile属性设置为“手机”或“平
KendoUI 版本 2013.3.1119使用 Kendo MVVM 我有一个我构建的颜色选择器,它使用平面颜色选择器和使用调色板的颜色选择器。它们都可以正常运行,但平面颜色选择器的布局已关闭, s
我使用以下方法显示格式化为百分比的数值: columns.push( { field: key, hidden:
Hello 使用类似于此示例的复选框实现了自定义过滤器菜单: http://dojo.telerik.com/@SiliconSoul/oBoCu 我的问题是,如果用户选择/取消选择了一些复选框,但从
网格列可以调整大小。我想存储用户调整的列宽并在下一个 session 开始时恢复它们。 我发现存储列宽的最佳方法如下: var element = $('#grid').kendoGrid({
我有一个Kendo ui图表,该图表显示来自动态数据源的柱形图。但有时图表会打开可用空间大小的一半。当我单击某些链接或更改日期时,它会自动调整大小。知道为什么会导致它吗? 在数据源更改事件中,当它显示
我发现 kendoui 图表有两种方法:refresh方法和redraw方法,有什么区别?我想他们俩都是再画一次图表。但是如果图表是根据 ajax 从远程数据绑定(bind)的,则请求不会再次触发。
我有一个包含太多列的剑道网格。最初我选择隐藏一些列,但后来我决定用水平滚动条显示所有列。 我通过为每一列分配宽度来做到这一点。当我这样做时,每列之间的行与标题行不同步。 我的意思是,网格数据部分的行相
enter image description here 我正在尝试使用带有复选框的 Treeview 来定义用户权限。 (2 个 Action - 启用/禁用正确) 如何从父节点获取值(id)? K
我是一名优秀的程序员,十分优秀!