父窗口中前台代码:

<%...@PageLanguage="C#"AutoEventWireup="true"CodeFile="testwebpart.aspx.cs"Inherits="wss_testwebpart"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>

<scriptlanguage="javascript"type="text/javascript">...
vargetreturnvalue=null;
functionshowModelWindow()
...{
vara=(screen.height-400)/2;
varb=(screen.width-500)/2;
varshowvalue=window.showModalDialog('xwwtest.aspx','newwindow','dialogWidth:700px;scroll:no;dialogHeight:550px,top='+a+',left='+b+',toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no');
if(showvalue!=null)
...{
document.getElementById("Hidden1").value=showvalue;
getreturnvalue=showvalue;
document.getElementById("Button1").onclick=buttonClick();
}
}
functionbuttonClick()
...{
document.form1.submit();
}
</script>
</head>
<body>
<formid="form1"runat="server">
<div>
<ahref="#"onclick="showModelWindow()">测试</a>
<br/>
<br/>
<br/>
<br/>
gfdgfdgdfgdfgfdgfdsgdsgfdsgdgfds<br/>
<br/>
<br/>
<inputid="Button1"name="btntest"type="button"value="button"onclick="buttonClick()"/>
<asp:ButtonID="Button2"runat="server"Text="Button"/><br/>
<br/>
<asp:GridViewID="GridView1"runat="server"AllowPaging="True"AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"OnPageIndexChanging="GridView1_PageIndexChanging"
PageSize="4">
<Columns>
<asp:BoundFieldDataField="id"HeaderText="id"InsertVisible="False"ReadOnly="True"
SortExpression="id"/>
<asp:BoundFieldDataField="name"HeaderText="name"SortExpression="name"/>
<asp:BoundFieldDataField="subject"HeaderText="subject"SortExpression="subject"/>
<asp:BoundFieldDataField="Source"HeaderText="Source"SortExpression="Source"/>
</Columns>
</asp:GridView>
<inputid="Hidden1"name="hiddenvalue"type="hidden"runat="server"/>
<inputid="Text1"type="text"/><br/>
<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="DataSource=XWW;InitialCatalog=Testdb;UserID=sa;Password=admin"
ProviderName="System.Data.SqlClient"SelectCommand="SELECT*FROM[Test]"></asp:SqlDataSource>
<inputid="Button3"type="button"value="button"onclick="getvalue()"/>
<asp:ButtonID="Button4"runat="server"OnClick="Button4_Click"Text="Button"/>
</div>
</form>
</body>
</html>
父窗口中后台代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclasswss_testwebpart:System.Web.UI.Page
...{
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(Request.Form["Hidden1"]!=null)
...{
this.GridView1.DataSourceID="SqlDataSource1";
this.GridView1.DataBind();
}
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
...{
this.GridView1.PageIndex=e.NewPageIndex;
Response.Write(e.NewPageIndex.ToString());
this.GridView1.DataBind();
}
protectedvoidButton4_Click(objectsender,EventArgse)
...{
Response.Write(Request.Form["Hidden1"].ToString());
}
}
子窗口中前台代码:

<%...@PageLanguage="C#"AutoEventWireup="true"CodeFile="xwwtest.aspx.cs"Inherits="wss_xwwtest"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
<basetarget="_self"/>
<scriptlanguage="javascript"type="text/javascript">...
functionreturnvalue()
...{
window.returnValue=true;
window.close();
}
</script>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="返回"/><br/>
<br/>
<inputid="Button2"type="button"value="返回值"onclick="returnvalue()"/>
<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>
<asp:TextBoxID="TextBox2"runat="server"></asp:TextBox>
<asp:TextBoxID="TextBox3"runat="server"></asp:TextBox></div>
</form>
</body>
</html>
子窗口中后台代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclasswss_xwwtest:System.Web.UI.Page
...{
protectedvoidPage_Load(objectsender,EventArgse)
...{
}
protectedvoidButton1_Click(objectsender,EventArgse)
...{
inti=0;
SqlConnectioncon=newSqlConnection("server=xww;database=testdb;uid=sa;pwd=admin");
con.Open();
stringcmdtxt="UPDATEtestSETname='"+this.TextBox2.Text+"',subject='"+this.TextBox3.Text+"'whereid="+this.TextBox1.Text.Trim()+"";
SqlCommandcom=newSqlCommand(cmdtxt,con);
i=com.ExecuteNonQuery();
if(i!=0)
...{
Response.Write("<scriptlanguage='javascript'>alert('修改成功!');window.returnValue='ceshi';window.close();</script>");
//Session["IsGood"]="1";
}
else
...{
Response.Write("<scriptlanguage='javascript'>alert('修改失败!')</script>");
}
}
}
在修改一条数据时,为了使弹出的页面及时地得到最新数据,应该清空弹出页面中缓存,所以还应该在页面中添加以下代码,使页面不存在缓存.限制页面读取本地缓存
<METAHTTP-EQUIV
本文介绍了一个使用 ASP.NET 的示例项目,通过父窗口弹出子窗口进行数据选择或编辑,并将选择的结果返回给父窗口的过程。该示例展示了如何在前后端代码中实现这一交互流程,包括打开弹窗、接收返回值、更新 GridView 数据等功能。

被折叠的 条评论
为什么被折叠?



