0
我有一个ASP.NET MVC页面上有多个表单,其中每个表单都编辑同一个类的不同实例。每个表单还包含一个Telerik DateTimePicker控件。我想要的是元素ID改变,但不是元素名称。所以,我有这样的事情:更改Telerik DateTimePicker元素ID,但保留名称
string idString = string.Format("MyObject{0}", Model.ID)
@Html.Telerik().DatePickerFor(m => m.SomeDate).HtmlAttributes(new { id = idString + "-SomeDate" })
现在这个作品大都不错,除了在页面的底部,自动生成的JavaScript是Telerik的放入模样:
jQuery('#SomeDate').tDateTimePicker({
format:'M/d/yyyy h:mm tt',
minValue:new Date(1899,11,31,0,0,0,0),
maxValue:new Date(2100,0,1,0,0,0,0),
startTimeValue:new Date(2013,3,22,0,0,0,0),
endTimeValue:new Date(2013,3,22,0,0,0,0),
interval:30,
selectedValue:new Date(2013,3,22,11,9,1,180)
});
注意我idString
值并没有把在得到我可以试试。
@Html.Telerik().DatePickerFor(m => m.SomeDate).Name(idString + "SomeDate")
,这使得自动生成的JavaScript正确(jQuery('#MyObject123-SomeDate')
),但现在该元素的名称是错误的,所以TryUpdateModel
失败。
我该如何得到这个工作?谢谢。
编辑:我砍了这个使用下面的Javascript,但这是一个kludgy的方式来解决这个问题。
$(function() {
window.setTimeout(function() {
for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
var obj = document.getElementsByTagName("input")[i];
if (obj.id.indexOf("SomeDate") == -1)
continue;
obj.name = "SomeDate";
}
}, 150)
});