【发布时间】:2014-09-15 21:37:48
【问题描述】:
谁能给我一些具体的步骤来让日期选择器在 VS 2013 中工作?从包管理器中,我安装了包“Bootstrap Datepicker”1.3.0。怎么办?我终其一生都找不到任何关于我需要做什么才能使这件事正常工作的文档。
安装包后,我将 bootstrap-datepicker.js 的引用拖到页面的头部:
<script src="../../../Scripts/bootstrap-datepicker.js"></script>
我不确定这是否是我应该做的)。 VS 2013 在脚本捆绑和诸如此类的事情上发生了所有这些模糊的事情,我完全不知道这个过程如何/是否会影响我让日期选择器工作的方式。
为了测试,我把这个控件放在我的页面上:
<input id="workDate" type="text" value="06-01-2014" class="dp" />
我把它放在我的页面中:
$(function ()
{
$('.dp').datepicker({format: 'mm-dd-yyyy'});
});
当我运行该页面时,我收到此错误:“错误:对象不支持属性或方法 'datepicker'”。当然,我在 google 上搜索了这个并找到了数十亿个帖子,但我无法弄清楚我应该在 VS 2013 中做什么。其中许多都在谈论各种事物的加载顺序,并且经常提到截然不同的 Visual Studio 版本等。
似乎 JQuery 或 JQueryUI 或其他任何东西都有某种日期选择器。我不在乎我使用的是 Bootstrap 还是 JQuery ,我只是不知道其中任何一个的过程是什么,或者如何确定它们是否相互冲突等等。这真的让谷歌搜索当我什至无法弄清楚人们指的是哪个日期选择器时,这很难。
这是一个 Web 应用程序项目,我正在使用母版页、EF 6.0、动态数据等。我安装了 JQuery 2.1.0。
更新: 好吧,VS 只是一个花哨的文本编辑器,我明白了,我并不完全不同意。我的问题是,当您使用它创建 Web 应用程序时,它会创建数十个文件,其中包含对散布在各处的事物的引用。当我被告知“请确保您的参考文献的顺序正确”时,这正是我无法弄清楚该怎么做的事情。
这里有一些细节(我现在可能会因为提供太多细节而受到责备):
BundleConfig.cs
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
"~/Scripts/WebForms/WebForms.js",
"~/Scripts/WebForms/WebUIValidation.js",
"~/Scripts/WebForms/MenuStandards.js",
"~/Scripts/WebForms/Focus.js",
"~/Scripts/WebForms/GridView.js",
"~/Scripts/WebForms/DetailsView.js",
"~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/WebParts.js"));
bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
"~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
ScriptManager.ScriptResourceMapping.AddDefinition(
"respond",
new ScriptResourceDefinition
{
Path = "~/Scripts/respond.min.js",
DebugPath = "~/Scripts/respond.js",
});
bundles.Add(new StyleBundle("~/StyleSheets").IncludeDirectory("~/Content", "*.css"));
}
}
我不会撒谎 - 我不知道这里发生了什么,这个文件是由 VS 生成的。这是我应该在哪里放置对 bootstrap-datepicker.js 的引用(而不是在单个页面的头部)?
Site.Master
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%: Page.Title %> - Manpower</title>
<asp:PlaceHolder runat="server">
<%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>
<link href="../Content/bootstrap-theme.css" rel="stylesheet" />
<link href="../Content/bootstrap.css" rel="stylesheet" />
<link href="../Content/DD.css" rel="stylesheet" />
<link href="../Content/Site.css" rel="stylesheet" />
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<asp:ContentPlaceHolder ID="cpHead" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form runat="server">
<asp:ScriptManager runat="server">
<Scripts>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
同样,这是由 VS 创建的自动生成文件。这里有很多对脚本的引用 - 这是我应该添加对 bootstrap-datepicker.js 的引用的地方吗?如果是,该行的确切语法是什么?
Global.asax.cs
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
这个文件没有什么太有趣的地方,但这就是 VS 2013 似乎与其他版本不同的地方——它的捆绑方式似乎发生了变化。
Packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net451" />
<package id="AspNet.ScriptManager.bootstrap" version="3.1.1" targetFramework="net451" />
<package id="AspNet.ScriptManager.jQuery" version="2.1.0" targetFramework="net451" />
<package id="bootstrap" version="3.1.1" targetFramework="net451" />
<package id="Bootstrap.Datepicker" version="1.3.0" targetFramework="net451" />
<package id="DynamicDataTemplatesCS" version="1.0.1" targetFramework="net451" />
<package id="EntityFramework" version="6.1.0" targetFramework="net451" />
<package id="jQuery" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.AspNet.DynamicData.EFProvider" version="6.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.EntityDataSource" version="6.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.FriendlyUrls" version="1.0.2" targetFramework="net451" />
<package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.2" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.0.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.0.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.0.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.ScriptManager.MSAjax" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Web.Optimization.WebForms" version="1.1.3" targetFramework="net451" />
<package id="Microsoft.Owin" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Facebook" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Google" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.MicrosoftAccount" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Twitter" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
<package id="Modernizr" version="2.7.2" targetFramework="net451" />
<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="Respond" version="1.4.2" targetFramework="net451" />
<package id="System.Linq.Dynamic" version="1.0.0" targetFramework="net451" />
<package id="WebGrease" version="1.6.0" targetFramework="net451" />
</packages>
又一个自动生成的 VS 文件。不确定这是否符合犹太教规。
希望有人能在某个地方发现一些东西,以某种方式帮助我解决问题。我一直在关注 VS2013,因为我遇到了很多问题,这些问题在这个版本中不太有效(没有一些调整),所以我希望有人解决了类似的问题。我只是不明白“包管理器”的意义是什么,如果您仍然必须通过并破解所有这些文件才能使事情正常运行 - 它不应该为您解决依赖关系吗?
提前感谢您浏览所有这些内容。
【问题讨论】:
-
另外,FWIW,这是 Javascript。很确定 Visual Studio 与此没有太大关系。
-
这是一个非常无用的文档,我在发布之前阅读了它。那里没有提供 VS 2013 的具体信息。显然我有某种脚本加载冲突,所以我需要了解我需要在 VS 中设置什么才能使其工作。
-
没有VS2013。在你的网页中引用脚本,在你的Javascript中调用datepicker,获利。
-
如果就这么简单,我就不会创建这篇文章了。显然,它不起作用。感谢您的建议。
标签: twitter-bootstrap datepicker visual-studio-2013