我在管理员和管理员外面有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>
任何帮助都将不胜感激!!
答案 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" />