如何在asp.net中关闭B页面时,自动刷新A页面?

来源:互联网 发布:windows电脑护眼模式 编辑:程序博客网 时间:2024/06/12 23:26
前提条件:B页面是由A页面打开的。
方法:
在A页面的前台代码中加入以下代码:
function DownDvasp(htmlurl){var
newwin=window.open(htmlurl,'','toolbar=no,location=no,directories=no,status=no,menub
ar=no,scrollbars=no,resizable=no');return false;}
此代码如果在继承母版页的asp.net页面中就需要加在
ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">行下。
如果在一般的asp.net页面中就需加在段中。
然后在需链接打开的位置加入:
" >回复此留

这样单击此链接就可打开一个窗口了。
在B页面的前台代码中加入以下代码:
onclick='javascript:window.opener.location.href="A.aspx";window.close();''>
这样就实现了关闭B窗口的同时重新刷新A窗口的目地。
若只是关闭窗口而不需重新刷新A窗口,只需改成onclick='window.close()'就行了。
下面是我所做的一个回复留言的完整代码:
liuyanmanager.aspx
@ Page Language="C#" MasterPageFile="~/admin/MasterPageadmin.master"
AutoEventWireup="true" CodeFile="liuyanmanager.aspx.cs"
Inherits="admin_liuyanmanager" Title="Untitled Page" %>
asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
script language="javascript">function DownDvasp(htmlurl){var
newwin=window.open(htmlurl,'','toolbar=no,location=no,directories=no,status=no,menub
ar=no,scrollbars=no,resizable=no');return false;}script>
asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id"
DataSourceID="SqlDataSourcehufu" Width="100%">
Columns>
asp:TemplateField HeaderText="会员名" SortExpression="userid">
ItemTemplate>
asp:Label ID="Label1" runat="server" Text='Bind("userid")
%>' Visible="False">asp:Label>
asp:FormView ID="FormView1" runat="server"
DataSourceID="SqlDataSourceuser">
ItemTemplate>
 asp:Label ID="UserNameLabel" runat="server"
Text='Bind("UserName") %>'>asp:Label>br />
ItemTemplate>
asp:FormView>
asp:SqlDataSource ID="SqlDataSourceuser" runat="server"
ConnectionString=""
SelectCommand="SELECT UserId, UserName FROM vw_aspnet_Users
WHERE (UserId = @userid)">
SelectParameters>
asp:ControlParameter ControlID="Label1" Name="userid"
PropertyName="Text" />
SelectParameters>
asp:SqlDataSource>
ItemTemplate>
asp:TemplateField>
asp:TemplateField HeaderText="留言" SortExpression="liuyan">
ItemTemplate>
asp:Label ID="Label2" runat="server" Text='Bind("liuyan")
%>'>asp:Label>
ItemTemplate>
ItemStyle Width="520px" />
asp:TemplateField>
asp:TemplateField HeaderText="留言时间" SortExpression="liuyantime">
ItemTemplate>
asp:Label ID="Label4" runat="server" Text='Bind("liuyantime") %>'>asp:Label>
ItemTemplate>
asp:TemplateField>
asp:TemplateField HeaderText="回复">
ItemTemplate>
 a href="hufu.aspx?id=id")%>" >回复此留言a>
ItemTemplate>
asp:TemplateField>
Columns>
asp:GridView>
asp:SqlDataSource ID="SqlDataSourcehufu" runat="server" ConnectionString=""
SelectCommand="SELECT id, userid, liuyan, hufu, liuyantime FROM liuyan WHERE
(hufu = N'未回复')">
asp:SqlDataSource>
asp:Content>
hufu.aspx
@ Page Language="C#" AutoEventWireup="true" CodeFile="hufu.aspx.cs"
Inherits="admin_hufu" %>
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml" >
head runat="server">
title>回复留言title>
head>
body>
form id="form1" runat="server">
div>
table align="center" border="0" cellpadding="0" cellspacing="0"
style="width: 500px">
tr>
td style="width: 500px">
td>
tr>
tr>
td style="width: 500px">
asp:FormView ID="FormView1" runat="server" DataKeyNames="id"
DataSourceID="SqlDataSource1" Width="500px">
ItemTemplate>
table border="0" cellpadding="0" cellspacing="0"
style="width: 480px">
tr>
td width="480" style="text-align: center"
align="center" valign="top">
asp:Label ID="useridLabel" runat="server"
Text='Bind("userid") %>' Visible="False">asp:Label>asp:FormView
ID="FormView2" runat="server"
DataSourceID="SqlDataSourceuser">
ItemTemplate>
来自
 asp:Label ID="UserNameLabel"
runat="server" Text='Bind("UserName") %>'>asp:Label>的留言:br />
ItemTemplate>
asp:FormView>
td>
tr>
tr>
td width="480" align="center">
 asp:TextBox ID="TextBox1"
runat="server" Height="80px" ReadOnly="True" Text='Bind("liuyan") %>'
TextMode="MultiLine"
Width="480px">asp:TextBox>td>
tr>
table>
asp:SqlDataSource ID="SqlDataSourceuser"
runat="server" ConnectionString=""
SelectCommand="SELECT UserId, UserName
FROM vw_aspnet_Users WHERE (UserId = @UserId)">
SelectParameters>
asp:ControlParameter
ControlID="useridLabel" Name="UserId" PropertyName="Text" />
SelectParameters>
asp:SqlDataSource>

ItemTemplate>
asp:FormView>
td>
tr>
tr>
td style="width: 500px">
回复:td>
tr>
tr>
td align="left" style="width: 500px">
asp:TextBox ID="txthufu" runat="server" Height="80px"
TextMode="MultiLine" Width="480px">asp:TextBox>td>
tr>
tr>
td align="center" style="width: 500px">
asp:Button ID="Button1" runat="server" Text="回复"
OnClick="Button1_Click" />
                
 input type='button' value='关闭窗口'
onclick='javascript:window.opener.location.href="liuyanmanager.aspx";window.close();
''>td>
tr>
table>

div>
asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString=""
SelectCommand="SELECT [id], [userid], [liuyan], [hufu] FROM [liuyan]
WHERE ([id] = @id)">
SelectParameters>
asp:QueryStringParameter Name="id" QueryStringField="id"
Type="Int32" />
SelectParameters>
asp:SqlDataSource>
form>
body>
html>
hufu.aspx的部分后台代码:
protected void Button1_Click(object sender, EventArgs e)
{
string hufustring = this.txthufu.Text.Trim();
if (hufustring != "" && hufustring != string.Empty)
{
hufustring = hufustring.Replace("'", "“");
string sql = "UPDATE liuyan SET hufu ='"+hufustring+"' WHERE id =
'"+Request.QueryString["id"]+"'";
using (SqlConnection connection = new
SqlConnection(ConfigurationManager.ConnectionStrings["articleConnectionString"].Conn
ectionString))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
command.ExecuteNonQuery();
}
}
}
}
posted on 2006-06-26 04:11 E海星 阅读(609) 评论(1) 编辑 收藏 引用 网摘 所属分类: ASP.NET 2.0学习笔记

Feedback
# re: 如何在asp.net中关闭B页面时,自动刷新A页面? 2006-09-11 12:02 what
假设分别是1.asp和2.asp
------1.asp
..
..
..

.

----------2.asp
'不要忘记在head区加这句
"" then
for i=1 to cint(request("txtn1"))
s="delete from cyprice where id = " & trim(request("txtep1" & cstr(i)))
rs.open s,conn,3,2
next
response.redirect "cyjc.asp"
end if
%>
在由2.asp转回1.asp的时候刷新了1.asp。

=====================================================================================
使用window.location.reload;刷新时,如果提交数据的动作,则会出现这么个讨厌的对话框!
http://p.blog.csdn.net/images/p_blog_csdn_net/zss1100/271607/o_p2006626143410.jpg

解决此问题,应该这样写:
window.location.href=window.location.href;
window.location.reload;
同理,如果是刷新父窗口,应该这样写:
window.opener.location.href=window.opener.location.href;
window.location.reload;
这种写法就不出现那讨厌的对话框啦!