Asp.net中的onbeforeunload函数 [英] onbeforeunload function in Asp.net
问题描述
我的要求:当用户试图关闭浏览器窗口时,必须提示消息
现在发生的事情:我已经部分达到了我的要求。它提示我一个窗口,当他试图关闭浏览器时提醒用户
问题我现在面临的问题:我的页面中的每个超链接都会出现警报消息。需要帮助解决这个问题我的asp.net(内容页面)只有Gridveiw我粘贴下面的代码
我现在用来关闭窗口的Javascript是
My requirement: A message has to be prompted when user tries to close the browser windows
Whats Happening now: I have partially achieved my requirement. It prompts me a window to alert the user when he tries to close the browser
Problem what I am facing now: The alert message comes for every hyperlink in my page. Need help to fix this My asp.net (Content page) has only Gridveiw I am pasting the code below
Javascript which I am using now to close the window is
<script type="text/javascript" language="javascript">
window.onbeforeunload = confirmExit;
function confirmExit() {
return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}
我的asp.net内容页面内容
My asp.net content page contents
<%@ Page Title="" Language="C#" MasterPageFile="~/Master/Menu.master" AutoEventWireup="true"
CodeFile="TestScriptComponentPages.aspx.cs" Inherits="TestScriptComponentPages" %>
<%@ MasterType VirtualPath="~/Master/Menu.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<script src="JQueryScripts/jquery.js" type="text/javascript"></script>
<script src="JQueryScripts/colResizable-1.3.min.js" type="text/javascript"></script>
<script src="JQueryScripts/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
window.onbeforeunload = confirmExit;
function confirmExit() {
return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}
$(document).ready(function () {
if ($.cookie('colWidth') != null) {
var columns = $.cookie('colWidth').split(',');
var i = 0;
$('.GridViewStyle th').each(function () {
$(this).width(columns[i++]);
});
}
$(".GridViewStyle").colResizable({
liveDrag: true,
gripInnerHtml: "<div class='grip'></div>",
draggingClass: "dragging",
onResize: onSampleResized
});
});
var onSampleResized = function (e) {
var columns = $(e.currentTarget).find("th");
var msg = "";
columns.each(function () { msg += $(this).width() + ","; })
$.cookie("colWidth", msg);
};
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div style="overflow: scroll; height: 573px; width: 1030px">
<%-- <asp:DataGrid ID="Grid" runat="server" DataKeyField="ObjectName"
AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333"
OnPageIndexChanged="Grid_PageIndexChanged" OnCancelCommand="Grid_CancelCommand"
OnDeleteCommand="Grid_DeleteCommand" OnEditCommand="Grid_EditCommand"
OnUpdateCommand="Grid_UpdateCommand" Height="287px" Width="416px">
<Columns>
<asp:BoundColumn HeaderText="TestWindow/Frame Name" DataField="BrowserPage">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="Test Object" DataField="ObjectName">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="Test Operation" DataField="Action">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="Test Data" DataField="TestData">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="ReUseableOutputData" DataField="ReUsableOutputData">
</asp:BoundColumn>
<asp:BoundColumn HeaderText="Step Description" DataField="Steps">
</asp:BoundColumn>
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" Mode="NumericPages" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#FFFBD6" ForeColor="#333333" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>--%>
<table>
<tr>
<td>
<asp:ImageButton ID="btnAdd" runat="server" ImageUrl="images/add.ico" CausesValidation="false"
OnClick="btnAdd_Click" />
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
<asp:GridView ID="gvTestScriptComponent" runat="Server" CssClass="GridViewStyle" AutoGenerateColumns="False"
CellPadding="4" ForeColor="Black" DataKeyNames="ComponentID"
ShowFooter="true" Height="110px" Style="margin-right: 0px" Width="990px" BackColor="White"
OnRowDataBound="gvTestScriptComponent_RowDataBound" AutoGenerateEditButton="True"
OnRowEditing="gvTestScriptComponent_RowEditing" OnRowCancelingEdit="gvTestScriptComponent_RowCancelingEdit"
OnRowUpdating="gvTestScriptComponent_RowUpdating" OnRowDeleted="gvTestScriptComponent_RowDeleted"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
OnRowCommand="gvTestScriptComponent_RowCommand">
<Columns>
<asp:TemplateField HeaderText="ComponentID" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblComponentID" runat="server" Height="20px" Text='<%#Eval("ComponentID")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Options" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="btnDelete" runat="server" ImageUrl="images/delete.ico" CausesValidation="false"
CommandName="DeleteRow" OnClick="btnDelete_Click" />
</ItemTemplate>
<FooterTemplate>
<asp:ImageButton ID="btnSave" runat="server" ImageUrl="images/save.ico" CausesValidation="false"
CommandName="SaveRow" OnClick="btnSave_Click" />
</FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="TestWindow/Frame Name" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblTestWindow" runat="server" Height="20px" Text='<%#Eval("BrowserPage")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:DropDownList ID="ddlTestWindow" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlTestWindow_SelectedIndexChanged">
</asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlFooterTestWindow" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlFooterTestWindow_SelectedIndexChanged">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test Object" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblTestObject" runat="server" Height="20px" Text='<%#Eval("ObjectName")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:DropDownList ID="ddlTestObject" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlTestObject_SelectedIndexChanged" >
</asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlFooterTestObject" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlFooterTestObject_SelectedIndexChanged">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test Operation" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblTestOperation" runat="server" Height="20px" Text='<%#Eval("Action")%>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:DropDownList ID="ddlTestOperation" runat="server" Visible="true">
</asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlFooterTestOperation" runat="server" Visible="true">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test Data" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblTestData" runat="server" Height="20px" Text='<%#Eval("TestData")%>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:TextBox ID="txtTestData" runat="server" Text='<%# Bind("TestData") %>' Visible="true">
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtFooterTestData" runat="server" Visible="true"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ReUseableOutputData" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblReUseableOutputData" runat="server" Height="20px" Text='<%#Eval("ReUsableOutputData")%>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:TextBox ID="txtReUseableOutputData" runat="server" Text='<%# Bind("ReUsableOutputData") %>'
Visible="true">
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtFooterReUseableOutputData" runat="server" Visible="true"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Step Description" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblStepDescription" runat="server" Height="20px" Text='<%#Eval("Steps")%>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<EditItemTemplate>
<asp:TextBox ID="txtStepDescription" runat="server" Text='<%# Bind("Steps") %>' Visible="true">
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtFooterStepDescription" runat="server" Visible="true"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" HorizontalAlign="Justify"
VerticalAlign="Middle" />
<SortedAscendingCellStyle BackColor="#F7F7F7" />
<SortedAscendingHeaderStyle BackColor="#4B4B4B" />
<SortedDescendingCellStyle BackColor="#E5E5E5" />
<SortedDescendingHeaderStyle BackColor="#242121" />
<EmptyDataTemplate>
<table>
<tr style="background-color: #999999;">
<th>
Option
</th>
<th>
Test Window
</th>
<th>
Test Object
</th>
<th>
Test Operation
</th>
<th>
Test Data
</th>
<th>
ReUseableOutputData
</th>
<th>
StepDescription
</th>
</tr>
<tr>
<td headers="Option">
<asp:ImageButton ID="btnSave" runat="server" ImageUrl="images/save.ico" CausesValidation="false"
CommandName="FirstSaveRow" OnClick="btnSave_Click" />
</td>
<td headers="Test Window">
<asp:DropDownList ID="ddlFooterTestWindow" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlFooterTestWindow_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td headers="Test Object">
<asp:DropDownList ID="ddlFooterTestObject" runat="server" Visible="true" AutoPostBack="True"
OnSelectedIndexChanged="ddlFooterTestObject_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td headers="Test Operation">
<asp:DropDownList ID="ddlFooterTestOperation" runat="server" Visible="true">
</asp:DropDownList>
</td>
<td headers="Test Data">
<asp:TextBox ID="txtFooterTestData" runat="server" Visible="true"></asp:TextBox>
</td>
<td headers="ReUseableOutputData">
<asp:TextBox ID="txtFooterReUseableOutputData" runat="server" Visible="true"></asp:TextBox>
</td>
<td headers="StepDescription">
<asp:TextBox ID="txtFooterStepDescription" runat="server" Visible="true"></asp:TextBox>
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>
<table>
<tr>
<td>
<asp:ImageButton ID="btnAdd1" runat="server" ImageUrl="images/add.ico" CausesValidation="false"
OnClick="btnAdd_Click" />
</td>
</tr>
</table>
</div>
</asp:Content>
推荐答案
(document).ready(function () {
if (
(document).ready(function () { if (
.cookie('colWidth') != null) {
var columns =
.cookie('colWidth') != null) { var columns =
.cookie('colWidth').split(',');
var i = 0;
.cookie('colWidth').split(','); var i = 0;
这篇关于Asp.net中的onbeforeunload函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!