Asp.net可通過指令碼在頁面間傳遞資料
來源:互聯網
上載者:User
建立一個 WebForm1.aspx頁面,添加一個TextBox和一個Button控制項,在頁面的Page_Load裡寫下註冊用戶端指令碼的語句:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置使用者代碼以初始化頁面
if(!Page.IsClientScriptBlockRegistered("clientScript"))
{
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script>/n");
sbScript.Append("function OpenWin(){/n");
sbScript.Append("var str=window.showModalDialog('WebForm2.aspx',document.Form1.txtWndName.value)/n");
sbScript.Append("if(str!=null) document.Form1.txtWndName.value=str/n");
sbScript.Append("}/n</script>/n");
string script = sbScript.ToString();
RegisterClientScriptBlock("clientScript",script);
}
this.btnOpen.Attributes.Add("OnClick","OpenWin()");
}
建立一個WebForm2.aspx頁面,放入兩個架構:
<frameset rows="0,*">
<frame src="about:blank"
<frame src="WebForm3.aspx">
</frameset>
建立一個WebForm3.aspx頁面,在Page_Load裡寫下一下註冊指令碼的語句:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置使用者代碼以初始化頁面
if(Page.IsPostBack)
{
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script>/n");
sbScript.Append("window.parent.returnValue='" + this.TextBox1.Text + "'/n");
sbScript.Append("window.parent.close()/n");
sbScript.Append("</script>/n");
string script = sbScript.ToString();
if(!Page.IsClientScriptBlockRegistered("clientScript"))
{
RegisterClientScriptBlock("clientScript",script);
}
}
}
通過JavaScript的快顯視窗實現資料傳遞。