TOP

[C#] Post Data With New Window - 2

前一篇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 意見:

張貼留言