弹出窗口中修改值数据后,父窗口中加载修改后的数据

本文介绍了一个使用 ASP.NET 的示例项目,通过父窗口弹出子窗口进行数据选择或编辑,并将选择的结果返回给父窗口的过程。该示例展示了如何在前后端代码中实现这一交互流程,包括打开弹窗、接收返回值、更新 GridView 数据等功能。

父窗口中前台代码:

<%...@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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值