我正在开发一个使用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显示在包含控件的开发中:
<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")
而另一个则不会。
有没有一种可行的方法让这两种控制都有效?
答案 0 :(得分:2)
调用HtmlAttributes
设置id
设置包装器div的值。需要InputHtmlAttributes
!这会影响实际的输入控件,因此可以分配唯一的id
。
@(Html.Telerik().DatePickerFor(x => Model.DataField)
.InputHtmlAttributes(new {id="UniqueID"}))
这会产生:
<div class="t-widget t-datepicker">
<div class="t-picker-wrap">
<input class="t-input" .... id="UniqueID" name="DataField" type="text">
并按需运作。