[Silverlight] 在Silverlight 中 post 或 get 資料給其他頁面

2010/08/14

在Silverlight 中有時候需要post 或是 透過 get 方式 傳資料出去給其他頁面.作為溝通..
像台灣跟許多金流公司合作會常用到這方法..

這也是最常跟其他頁面溝通的方法..

案例 : 點擊Send Data 按鈕之後 會把 Textbox 中的值傳到 http://www.in2.cc/sample/getpostdata.aspx

那網頁頁面是可以接受無論get 或是 post 名為 data 的資料..

下面是畫面配置..

sshot-29


第一步首先你得在嵌入Silverlight 中的.html 頁面 中的 <body> 中加入

<form id="postform" 
action="http://www.in2.cc/sample/getpostdata.aspx" 
method="post" 
target="_blank" 
style="visibility:collapse" />



其中.. action 為接收資料端的網頁,method 可以為post 或是 get 此案例是用post ,
target 如果是_blank 為開新頁面,如果是_parent就是當頁

接下來就是 Silverlight 這邊如何去呼叫此form

首先需要先引入 System.Windows.Browser;

using System.Windows.Browser;

下面為按鈕的 C# Code :

private void btnSendData_Click(object sender, RoutedEventArgs e)
{
//取得在HTML 中叫做 postfrom 的form Element.
HtmlElement hiddenForm = HtmlPage.Document.GetElementById("postform");
//建立一個叫做input 的input box
HtmlElement hiddenInput = HtmlPage.Document.CreateElement("input");
//設定為隱藏
hiddenInput.SetProperty("type", "hidden");
//將值設定為txtTransData的輸入值
hiddenInput.SetProperty("value", txtTransData.Text);
//取定post name 為data
hiddenInput.SetProperty("name", "data");
//加入postform 內
hiddenForm.AppendChild(hiddenInput);
//模擬按下送出
hiddenForm.Invoke("submit");
 
 
 
//這行可加可不加,加這行防止用戶重複點擊
hiddenForm.RemoveChild(hiddenInput);
}


這樣點擊按鈕後就可以送出資料了 …

範例:


讚一下:


範例下載:


0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.