ASP.NET jQuery Datepicker问题 - 我缺少什么?

时间:2011-04-04 19:48:35

标签: asp.net jquery-ui

这是星期五,现在不是。我在UserControl的开头有这个:

<link type="text/css" href="/App_Themes/css/ui-lightness/jquery-ui-1.8.11.custom.css" rel="stylesheet" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#MainContent_ucSearchControl_dpPickupStart").datepicker();
        $("#MainContent_ucSearchControl_dpPickupEnd").datepicker();
});
</script>

进一步说,这个:

 <td><asp:TextBox id="dpPickupStart" runat="server"  style="width: 65px"/></td>
 <td><asp:TextBox id="dpPickupEnd" runat="server" style="width: 65px"/></td>

导致(在渲染页面中)输入控件:

name="ctl00$ctl00$MainContent$ucSearchControl$dpPickupStart" id="MainContent_ucSearchControl_dpPickupStart"
name="ctl00$ctl00$MainContent$ucSearchControl$dpPickupEnd" id="MainContent_ucSearchControl_dpPickupEnd"

然而,每次页面加载时,我都会收到一个Object Expected javascript错误,该错误指向$(document).ready location。

我错过了什么?

编辑:Firebug报告说: $未定义 [打破此错误] $(文件).ready(function(){

2 个答案:

答案 0 :(得分:2)

作为用户控件,您无法保证JS文件的相对路径始终是正确的,具体取决于文件系统层次结构中父页面的位置。

因此,按照以下方式更改JS脚本标记,以使用Control.ResolveUrl方法将URL转换为可在请求客户端上使用的URL。

<script src='<%=ResolveUrl("~/Scripts/jquery-1.5.1.min.js")%>' type="text/javascript"></script>
<script src='<%=ResolveUrl("~/Scripts/jquery-ui-1.8.11.custom.min.js")%>' type="text/javascript"></script>

或者从CDN引用以获得缓存的额外性能奖励。

jQuery hosted on google
jQuery UI hosted on google

答案 1 :(得分:0)

该错误是由于Jquery不可用引起的。我认为Swaff的解决方案应该有效(+1)。检查您的解决方案的Scripts文件夹中是否有Jquery-1.5.1.min.js文件。或者也可能是您的Scripts文件夹已重命名。

HTH。

相关问题