前一篇Post資料的方式,會遇到一種狀況,當輸入或輸出的資料需要在Page_Load從資料庫或是其他的程式判斷之後才填寫,或是要使用DropDownList選擇項目再Post時,就會有點難題。
因為利用另外一個偷吃步的方式來達成相同的效果。
1.在要送資料的Page_Load內,建立Session儲存要傳送的資料,利用Window.open開啟PostData.aspx。
protected void Page_Load(object sender, EventArgs e)
{
Session.Add("name", Name.Text.Trim());
string strUrl = string.Format("{0}/PostData.aspx", ConfigurationManager.AppSettings["WebRootUrl"]);
ScriptManager.RegisterStartupScript(this, this.GetType(),
"recordOpenUrl",
"window.open('" + strUrl + "','recordOpenUrl','" + "" + "');", true);
}
2.建立一個新的PostData.aspx頁,準備讀取session資料,並且利用JavaScript自動submit該資料的form。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script language="JavaScript" type="text/javascript" defer>
document.formid.submit()
</script>
</head>
<body>
<form name="formid" method="post" action="https://www.streamwing-gridow.com/signup/sfdc">
<div>
<input id = "name" type="hidden" name="first_name" value=" <%=Session["name"] %>" />
</div>
</form>
</body>
</html>
特別注意:此為自動送出資料的關鍵。
<script language="JavaScript" type="text/javascript" defer>
document.formid.submit()
</script>
3.chrome及firefox的瀏覽器上執行此JavaScript
要在body內加上onload
<body onload="document.formid.submit()">
0 意見: