Telerik DatePicker ID与部分视图冲突

时间:2014-03-28 04:09:14

标签: c# jquery asp.net-mvc telerik

我正在开发一个使用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")而另一个则不会。

有没有一种可行的方法让这两种控制都有效?

1 个答案:

答案 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">

并按需运作。