在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 意見: