我有一个当前页面使用JqueryUIHelpers
来呈现JQuery UI DatePicker
。
我已经按照以下提示: JqueryUIHelpers - Getting Started
在我开始将代码移动到局部视图之前,一切正常。
点击后不再呈现datepicker
。
我已经读过,正常的JQueryUI用法会出现同样的问题,我应该移动将datepicker呈现给基本视图的JavaScript(类似$('#date').datepicker()
)。
但是,JQueryUIHelpers
代码如下:
@Html.JQueryUI().Datepicker("date")
我能否知道是否还能让它发挥作用?
答案 0 :(得分:0)
感谢Kartikeya的建议,设法让日期选择工作。
首先我定义了DatePicker:
@Html.JQueryUI().Datepicker("date")
在部分视图的document.ready()
函数中,我再次重新初始化了DatePicker:
$('#date').datepicker();
现在一切正常。
修改强>
再次感谢Kartikeya的建议。在部分视图中包含JQueryUI文件将消除在document.ready()
功能块中再次重新初始化DatePicker的需要。
我所做的是包括这一行:
@Scripts.Render("~/bundles/jqueryui")
在我的局部视图中,然后点击所有内容。
顺便说一句,现在我知道"要做什么才能让它发挥作用",我能否知道"为什么它以这种方式运作"?
答案 1 :(得分:0)
我正在回答部分解释您的问题,因为评论部分没有适当的空格。
是的,很多人认为这可能是asp.net mvc局部视图中的一个错误但是如果我们在内部编写@Html.JQueryUI().Datepicker("date")
并且在某处内部将datepicker初始化为:
$(document).ready(function(){
$('#date').datepicker();
});
即使我们不需要编写上面的jquery代码,但是datepicker只是以这种方式初始化,所以如果我们在视图中使用datepicker但是如果我们在局部视图中使用datepicker然后场景更改,因为部分视图通常用于ex的动态内容: - 如果我们想要动态更改某些html,那么我们使用局部视图,部分视图返回的动态html显示在视图中,所以这里出现问题,因为部分视图没有document.ready()
事件触发到初始化datepicker所以这个问题发生了,我的两个评论和你的两个答案可以解决它。在上面的行我一次又一次写动态HTML因为这个问题是因为这个动态的HTML只是为了克服这个我们也可以使用事件委托即jquery中的.on()
或者将datepicker as为inly(给所有datepicker textboxes
一个类说'textbox'
):
$('body').on('focus',".textbox", function(){
$(this).datepicker();
});
谢谢.. !!