无法在WebForm中使用站点主站运行pikaday.js

时间:2015-04-03 06:56:33

标签: asp.net

在使用sitemaster的webform中,我无法使用pikaday的功能,但是在我没有使用sitemaster进行测试的新webform中,我可以使用该功能。我该如何解决这些问题?

使用sitemaster:

<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    <link href="css/pikaday.css" rel="stylesheet" />
    <link href="css/theme.css" rel="stylesheet" />
    <link href="css/site.css" rel="stylesheet" />
    <script src="moment.js"></script>
    <script src="pikaday.js"></script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     <script>
            var picker = new Pikaday({
                field: document.getElementById('TextBox1'),
                firstDay: 1,
                format: 'YYYY-MM-DD',
                minDate: new Date('2015-01-01'),
                maxDate: new Date('2050-12-31'),
                yearRange: [2015, 2050],
                numberOfMonths: 1,

            });

        </script> </asp:Content>

没有网站管理员:

<body>
    <form id="form1" runat="server">
    <div>
        <link href="css/pikaday.css" rel="stylesheet" />
        <link href="css/site.css" rel="stylesheet" />
        <link href="css/theme.css" rel="stylesheet" />
        <script src="moment.js"></script>
        <script src="pikaday.js"></script>
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     <script>
            var picker = new Pikaday({
                field: document.getElementById('TextBox1'),
                firstDay: 1,
                format: 'YYYY-MM-DD',
                minDate: new Date('2015-01-01'),
                maxDate: new Date('2050-12-31'),
                yearRange: [2015, 2050],
                numberOfMonths: 1,

            });

        </script>
    </div>
    </form> </body>

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,经过研究后我发现了以下内容:似乎有一个css属性需要在pikaday.css文件中更改,特别是在第35行:

.pika-single.is-bound{position: absolute !important}

只需在“position:absolute”语句旁边添加!important。

同样在您的javascript中,您必须像这样引用文本框:

var $txtDate = $("[id$=Client_Id_Generated_by_Aspx_page]")

根据“$ =”运算符,此选择器将在最后找到您在IDE(例如Visual Studio)上的ASPX页面上分配的文本框ID的引用。这适用于.Net Frameworks 3.5或更低,因为在.Net Framework 4.0或更高版本上,有一种方法可以在服务器端分配ClientID,以便您在frontEnd上使用它(例如.js文件)。

我希望这会对你有所帮助。

干杯...