ASP.NET Pikaday不使用母版页

时间:2017-01-28 16:22:25

标签: javascript asp.net webforms datepicker pikaday

在一个简单的网页形式中,Pikaday工作得很好但是当我在内容页面中使用它时它不起作用,为了更好地理解我给出的代码......谢谢提前

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Test2.Site1" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="css/pikaday.css" rel="stylesheet" />
    <link href="css/theme.css" rel="stylesheet" />
    <script src="js/pikaday.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </form>
</body>
</html>

和内容页面代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="ContentPage.aspx.cs" Inherits="Test2.WebForm2" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <h4>This is from content page</h4>
            <asp:TextBox ID="tbxFromDate" runat="server"></asp:TextBox>
            <asp:TextBox ID="tbxToDate" runat="server"></asp:TextBox>

            <script type="text/javascript">
                var picker1 = new Pikaday({
                    field: document.getElementById('tbxFromDate'),
                    theme: 'dark-theme'
                });
                var picker2 = new Pikaday({
                    field: document.getElementById('tbxToDate'),
                    theme: 'dark-theme'
                });
            </script>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

我不明白我错过了什么

1 个答案:

答案 0 :(得分:1)

问题是HTML中不存在tbxFromDatetbxToDate。由于控件位于内容控件中,因此会更改其ID以确保没有重复项。

他们的ID可能看起来像这样:ContentPlaceHolder1_tbxFromDate

所以你需要通过ClientID来引用它们。所以使用

<script type="text/javascript">
    var picker1 = new Pikaday({
        field: document.getElementById('<%= tbxFromDate.ClientID %>'),
        theme: 'dark-theme'
    });
    var picker2 = new Pikaday({
        field: document.getElementById('<%= tbxToDate.ClientID %>'),
        theme: 'dark-theme'
    });
</script>