TOP

[C#]Post Data With New Window

在C#內要傳送method為Post的資料至其他頁面,且還要是新的視窗。

1.主要還是利用javascript的方式做處理
放javascript方式有兩種

(1)直接將javascript放ASPX內的Head裡面
<head runat="server">

    <script type="text/javascript">    



 function openWindowWithPost(url, name, keys, values) { //開新視窗,這邊我不指定新視窗的網址
     var newWindow = window.open("", name, "height=700, width=600, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, status=no");
     if (!newWindow) return false;
     var html = "";
     html += "<html><head></head><body><form id='formid' method='post' action='" + url + "'>";
     if (keys && values && (keys.length == values.length))
         for (var i = 0; i < keys.length; i++)
         html += "<input type='hidden' name='" + keys[i] + "' value='" + values[i] + "'/>";
     html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
     newWindow.document.write(html);
     return newWindow;
 }

 function Post(url,title) { //這個function會把網頁中所有的form找出來,並且找出每個form所包含的elements
     var keys = [];
     var values = [];
     for (var i = 0; i < document.forms.length; i++) {
         for (var j = 0; j < document.forms[i].elements.length; j++) {
             if (document.forms[i].elements[j].name != undefined &&
                document.forms[i].elements[j].value != undefined) {
                 keys[keys.length] = document.forms[i].elements[j].name;
                 values[values.length] = document.forms[i].elements[j].value;
             }
         }
     }
     openWindowWithPost(url, title, keys, values);
 }
</script>
</head>

(2)
將javascript的程式放仙tools.js內,aspx看起來也比較乾淨。
<head runat="server">
    <script type="text/javascript" src="Js/tools.js"></script>
</head>

2.在C#的Codebehind程式碼內。
    protected void Page_Load(object sender, EventArgs e)
    {

      Page.RegisterStartupScript("Show", "<script language=\"JavaScript\">Post('網址','名稱');</script>");
    }

3.HTML內的輸入方式要改為input,不可以使用textbox,不然javascript會抓不到資料。
                <input id = "name"  type="text" name="name" value="name" />

參考資料:
http://www.dotblogs.com.tw/puma/archive/2008/09/03/5288.aspx
http://takamai.pixnet.net/blog/post/33804587-asp.net-%E9%85%8D%E5%90%88javascript%E9%96%8B%E6%96%B0%E8%A6%96%E7%AA%97%E4%B8%A6%E4%B8%94%E4%BD%BF%E7%94%A8post%E5%82%B3%E9%81%9E



0 意見:

張貼留言