如何在asp.net中将javascript文件和css添加到母版页的contentpage中

如何在asp.net中将javascript文件和css添加到母版页的contentpage中,javascript,css,asp.net,Javascript,Css,Asp.net,如何将javascript文件和css添加到asp.net母版页的contentpage中。我试图在我的内容页中包含一个日期时间选择器。但它在母版上工作得很好。当我试着在我的内容页面中放同样的内容时,它不起作用 this is Content Page code: <%@ Page Title="" Language="C#" MasterPageFile="~/testmasterpage.master" AutoEventWireup="true" CodeFile="datet

如何将javascript文件和css添加到asp.net母版页的contentpage中。我试图在我的内容页中包含一个日期时间选择器。但它在母版上工作得很好。当我试着在我的内容页面中放同样的内容时,它不起作用

this is Content Page code:



<%@ Page Title="" Language="C#" MasterPageFile="~/testmasterpage.master" AutoEventWireup="true" CodeFile="datetime.aspx.cs" Inherits="datetime" %>

<asp:Content ID="Content1" ContentPlaceHolderID="Head" Runat="Server">


    <link href="css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css" />
    <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui-1.8.19.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#txtDate").datepicker();
        });
</script>

<style type="text/css">
.ui-datepicker { font-size:8pt !important}
</style>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
</asp:Content>




 this is masterpage code:

<head runat="server">
 <title></title>



    <asp:ContentPlaceHolder ID="Head" runat="server">

    </asp:ContentPlaceHolder>




</head>
<body>
 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                                    </asp:ContentPlaceHolder>
`</body>`
</html>
这是内容页代码:
$(函数(){
$(“#txtDate”).datepicker();
});
.ui日期选择器{字体大小:8pt!重要}
这是母版页代码:
``
标签应放入
标签。

标签应放入
标签。

我们不能使用
标签在内容页中,我们将其放置在母版页中,您已经将链接和脚本标签放置在正确的位置,请尝试javascript函数调用

$("ctl00_ContentPlaceHolder1_txtDate").datepicker();
并将警报和调试器放在datepicker函数和下面一行的上方

$("ctl00_ContentPlaceHolder1_txtDate").datepicker();
并检查它,如果仍然不起作用,则可能是您的JQuery调用有问题。

我们无法使用
标签在内容页中,我们将其放置在母版页中,您已经将链接和脚本标签放置在正确的位置,请尝试javascript函数调用

$("ctl00_ContentPlaceHolder1_txtDate").datepicker();
并将警报和调试器放在datepicker函数和下面一行的上方

$("ctl00_ContentPlaceHolder1_txtDate").datepicker();
并检查它,如果它仍然不工作,则可能是JQuery调用有问题。

是否对这些文件路径使用了“~”字符?通常,asp页面会认为每个页面使用不同的路径。因此,我们需要为每个加载的css/js文件定义相对路径

因此,请尝试以下方法来更正您的页面:

<asp:Content ID="Content1" ContentPlaceHolderID="Head" Runat="Server">


    <link href="~/css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css" />
    <script src="<%: ResolveUrl("~/js/jquery-1.7.2.min.js") %>" type="text/javascript"></script>
    <script src="<%: ResolveUrl("~/js/jquery-ui-1.8.19.custom.min.js") %>"  type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#txtDate").datepicker();
        });
</script>

<style type="text/css">
.ui-datepicker { font-size:8pt !important}
</style>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
</asp:Content>




 this is masterpage code:

<head runat="server">
 <title></title>



    <asp:ContentPlaceHolder ID="Head" runat="server">

    </asp:ContentPlaceHolder>




</head>
<body>
 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                                    </asp:ContentPlaceHolder>
</body>
</html>

$(函数(){
$(“#txtDate”).datepicker();
});
.ui日期选择器{字体大小:8pt!重要}
这是母版页代码:
也许您需要使用页面名称空间“Page.ResolveUrl”调用ResolveUrl。

您是否对这些文件路径使用了“~”字符?通常,asp页面会认为每个页面使用不同的路径。因此,我们需要为每个加载的css/js文件定义相对路径

因此,请尝试以下方法来更正您的页面:

<asp:Content ID="Content1" ContentPlaceHolderID="Head" Runat="Server">


    <link href="~/css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css" />
    <script src="<%: ResolveUrl("~/js/jquery-1.7.2.min.js") %>" type="text/javascript"></script>
    <script src="<%: ResolveUrl("~/js/jquery-ui-1.8.19.custom.min.js") %>"  type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#txtDate").datepicker();
        });
</script>

<style type="text/css">
.ui-datepicker { font-size:8pt !important}
</style>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
</asp:Content>




 this is masterpage code:

<head runat="server">
 <title></title>



    <asp:ContentPlaceHolder ID="Head" runat="server">

    </asp:ContentPlaceHolder>




</head>
<body>
 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                                    </asp:ContentPlaceHolder>
</body>
</html>

$(函数(){
$(“#txtDate”).datepicker();
});
.ui日期选择器{字体大小:8pt!重要}
这是母版页代码:
也许您需要使用页面名称空间“Page.ResolveUrl”调用ResolveUrl。

您必须执行的操作:

  • 我相信您希望在“母版页”中包含所有脚本 每个
    ContentPage
    都有一个
    MasterPage
    ,MasterPage是“父”,因此他包含的每个脚本或样式也将存在于他的
    ContentPage
  • 如果有意义,请转移:

        <link href="css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css" />
        <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.8.19.custom.min.js" type="text/javascript"></script>
    
    
    
    转到母版页,在标签下

  • 通过
    [chrome developer tools][1]查看
    控制台
    选项卡中的错误,您可能会遇到一些错误,说他找不到
    jquery
    datepicker`,
    您应该选择这些脚本的路径(可能):

    将成为:

  • 你可以参考这篇文章了解你要做的事情:

  • 我相信您希望在“母版页”中包含所有脚本 每个
    ContentPage
    都有一个
    MasterPage
    ,MasterPage是“父”,因此他包含的每个脚本或样式也将存在于他的
    ContentPage
  • 如果有意义,请转移:

        <link href="css/ui-lightness/jquery-ui-1.8.19.custom.css" rel="stylesheet" type="text/css" />
        <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.8.19.custom.min.js" type="text/javascript"></script>
    
    
    
    转到母版页,在标签下

  • 通过
    [chrome developer tools][1]查看
    控制台
    选项卡中的错误,您可能会遇到一些错误,说他找不到
    jquery
    datepicker`,
    您应该选择这些脚本的路径(可能):

    将成为:


  • 你可以参考这篇文章,有时候用框架提供的工具做这件事更容易。在本例中,在代码隐藏中调用ClientScriptManager.RegisterStartupScript()会将脚本插入正确的位置:页面内容之后,body标记之前。只有在(重新)加载整个页面时才会添加脚本

    此代码将进入页面加载。无需检查iPostBack

    C版本:

    String sKey=“SomeUniqueKeyForThisScript”;
    类型tType=Page.GetType;
    ClientScriptManager csm=Page.ClientScript;
    csm.RegisterStartupScript(tType,sKey,“”)
    
    VB版本:

    Dim sKey As String = "SomeUniqueKeyForThisScript"
    Dim tType As Type = Page.GetType
    Dim csm As ClientScriptManager = Page.ClientScript
    csm.RegisterStartupScript(tType, sKey, "<script src=""" & ResolveUrl("~/Scripts/my-custom-script.js") & """></script>")
    
    Dim sKey As String=“SomeUniqueKeyForThisScript”
    Dim tType As Type=Page.GetType
    Dim csm As ClientScriptManager=Page.ClientScript
    csm.RegisterStartupScript(tType,sKey,“”)
    

    如果异步回发中包含受影响的控件,则显然需要重新绑定任何JS事件。通过使用ScriptManager.RegisterStartupScript()并将重新加载的控件作为第一个参数传递,可以很容易地做到这一点,这样只有在重新加载控件时才能执行脚本。

    有时候,使用框架提供的工具来完成这一任务更容易。在本例中,在代码隐藏中调用ClientScriptManager.RegisterStartupScript()会将脚本插入正确的位置:页面内容之后,body标记之前。只有在(重新)加载整个页面时才会添加脚本

    此代码将进入页面加载。无需检查iPostBack

    C版本:

    String sKey=“SomeUniqueKeyForThisScript”;
    类型tType=Page.GetType;
    ClientScriptManager csm=Page.ClientScript;
    csm.RegisterStartupScript(tType,sKey,“”)
    
    VB版本:

    Dim sKey As String = "SomeUniqueKeyForThisScript"
    Dim tType As Type = Page.GetType
    Dim csm As ClientScriptManager = Page.ClientScript
    csm.RegisterStartupScript(tType, sKey, "<script src=""" & ResolveUrl("~/Scripts/my-custom-script.js") & """></script>")
    
    Dim sKey As String=“SomeUniqueKeyForThisScript”
    Dim tType As Type=Page.GetType
    Dim csm As ClientScriptManager=Page.ClientScript
    csm.RegisterStartupScript(tTy