【发布时间】:2014-05-07 09:27:44
【问题描述】:
我正在开发一个使用 Telerik DatePicker 的项目。该应用程序切换共享相同字段名称的部分视图。 DatePicker 要求将Name() 指定的名称作为数据模型中的字段名称。 (据我所知,对 .Value(Model.DataField) 的调用是多余的。)
@(Html.Telerik().DatePicker()
.Name("DataField")
.ShowButton(true)
.Value(Model.DataField))
发生的情况是控件是使用 DataField 的 id 创建的。因此,对于同一个字段名称的两个部分,有两个相同的 id。一个工作(显示的第一个),另一个死了。
我已尝试将.HtmlAttributes(new { id="DataField_wrapper" }) 添加到阵容中,但它不会更改有问题的 id。此 id 显示在包装控件的 dev 中:
<div class="t-widget t-datepicker" id="DataField_wrapper">
<div class="t-picker-wrap">
<input class="t-input" .... id="DataField" name="DataField" type="text">
使用jQuery通过#DataField抓取元素,一个会有.data("tDatePicker"),另一个没有。
有没有合适的方法让这两个控件都工作?
【问题讨论】:
-
为什么需要在 2 Partial Views 中使用相同的 DatePicker ?对于这种情况,您不能将模型更改为具有 2 个日期属性吗?
-
该页面来自两个不同的模型,每个模型都有一个 StartDate 字段(例如)。每个都由自己的部分显示,但不是同时显示;然后还有一个用于创建新记录的弹出部分,它还会显示一个 StartDate。我已经在模型中独特地重命名字段,如果这是唯一的解决方案,我可以走这条蛮力路线。似乎应该有更好的方法来包装它。
-
如果更改名称,会影响 标签的名称还是只是它的 id?我想知道 属性是否由 value 字段控制。您是否尝试过 DatePickerFor 作为替代方案?
-
@B2K 名称和 ID 始终相同。调用 Name("newname") 方法设置 id 和 name。但是如果这个值与模型中的字段名称不匹配,那么它就不会更新。 DatePickerFor 的故事相同
标签: c# jquery asp.net-mvc telerik