microsoft jscript运行时错误:测试未定义

时间:2013-02-27 15:03:03

标签: jquery asp.net

我在管理员和管理员外面有2个母版页1

当我从该文件复制到adminmaster时,管理主页面外的jquery函数正在触发特定事件和相同的函数,我得到了错误

microsoft jscript运行时错误:'functionname'未定义

这里的区别是具有jquery功能的admin master的内容页面,只有那些功能在viewsource页面或firefox-> firebug->脚本

中可用

adminmasre中的功能根本不可用。

这是我的admin.master

代码
<asp:ContentPlaceHolder ID="scriptadmin" runat="server"> 
    <script type="text/javascript">
        $(document).bind("mobileinit", function () {
            $.mobile.ajaxEnabled = false;
        });

        $("#Logout").click(function (e) {
            e.stopImmediatePropagation();
            e.preventDefault();
        });

        function test() {
            alert("Test");
        }

        function Dologout() {
            //     Sys.Services.AuthenticationService.logout(null, OnLogoutSuceeded, OnLoginFailed, null);
            // return false;
        }

        //         function OnLogoutSuceeded(result, userContext, methodName) {
        //             alert('You have been successfully logged out of the application...');
        //          //   window.location.href("Login.aspx");
        //         } 

</script>

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

这里是我调用此函数的div            背部               登出     

内容页面是:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"      Inherits="XYZ.Admin.Default" MasterPageFile="~/Admin/admin.Master"  %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
        <h3 class="MainHeader">Upload Excel file to convert into database </h3>
        <asp:Label ID="lblmsg" runat="server" Text="" CssClass="message" ></asp:Label>
        <div class="file-upload-btn">
            <asp:FileUpload ID="FileUpload1" runat="server"  />
        </div>
        <div id ="ButtonWrapper" > 
            <asp:Button ID="btnUpload" runat="server" Text="Upload" data-role="none" onclick="btnUpload_Click"    />
        </div>
</asp:Content>

<asp:Content ID="script1" ContentPlaceHolderID="scriptadmin" runat="server">
    <script type="text/javascript">
         $(function () {
             $("#btnUpload").removeClass('ui-btn-hidden ui-btn-inner ui-submit ui-btn ui-shadow ui-btn-corner-all ui-btn-up-b');
             $("#FileUpload1").removeClass('ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c file-upload-btn');
         });
    </script>
</asp:Content>

任何帮助都将不胜感激!!

1 个答案:

答案 0 :(得分:1)

您已经替换了占位符scriptadmin中的代码,这就是为什么这些函数已经消失。

Master页面中ContentPlaceHolder的工作方式是Master文件中的任何代码只有在继承文件时没有ContentPlaceHolder才会运行。这是默认内容,所以你要替换它。

您需要做的是更改Admin.Master并更改它,以便ContentPlaceHolder不包含默认代码,而是始终添加它。

<script type="text/javascript">
    $(document).bind("mobileinit", function () {
        $.mobile.ajaxEnabled = false;
    });

    $("#Logout").click(function (e) {
        e.stopImmediatePropagation();
        e.preventDefault();
    });

    function test() {
        alert("Test");
    }

    function Dologout() {
        //     Sys.Services.AuthenticationService.logout(null, OnLogoutSuceeded, OnLoginFailed, null);
        // return false;
    }

    //         function OnLogoutSuceeded(result, userContext, methodName) {
    //             alert('You have been successfully logged out of the application...');
    //          //   window.location.href("Login.aspx");
    //         } 

</script>
<asp:ContentPlaceHolder ID="scriptadmin" runat="server" />