在IE瀏覽器中使用Windows窗體控件(二)
2024-07-21 02:16:23
供稿:網友
 
在ie瀏覽器中使用windows窗體控件(二)
作者::thiru thangarathinam
翻譯:秋楓 
通過windows窗體控件訪問web service
窗體控件一個重要優點就是你可以通過它在客戶端實現豐富的用戶信息。比如說,你可以通過窗體控件對web服務的訪問從而在ie中顯示而不需要重新刷新該頁面。為了演示這點,我們先來創建一個web服務,接著再來演示怎樣通過窗體控件調用web服務。
創建web service
我們創建一個 visual c# asp.net web service 新項目,名字取為authorswebservice。
建立以后,我們修改服務類名稱為authorsservice,同時在類里面增加一個getauthors方法到里面,該方法的代碼如下:
[webmethod]
public dataset getauthors()
{
 string connstring = system.configuration.configurationsettings.appsettings["connectionstring"];
 sqlconnection sqlconn = new sqlconnection(connstring); 
 dataset dstauthors = new dataset("authors"); 
 sqldataadapter adapter = new sqldataadapter("select * from authors",sqlconn); 
 adapter.fill(dstauthors,"author"); 
 sqlconn.close();
 sqlconn.dispose();
 return dstauthors; 
}
上面方法的代碼比較簡單,我們把數據庫連接字符串儲存到了web.config文件的appsettings節點上,如下:
<appsettings>
 <add key="connectionstring" value="server=localhost;uid=sa;pwd=thiru;database=pubs"></add>
</appsettings>
 
上面代碼中,
我們創建了一個sqlconnnection實例,同時把上面的連接字符串作為參數傳入。接著創建一個sqldataadapter對象,傳入兩個參數――查詢字符串和sqlconnnection實例。調用sqldataadapter實例的fill方法來執行數據庫查詢并把結果填充到dataset。現在我們完成了web服務的創建,接下去來建立一個他的一個客戶端調用。
創建windows窗體控件作為web服務客戶端
在這里,我們是想用一個窗體控件來調用web service,因此新建一個visual c#窗體控件項目取名authorswebserviceclientcontrol:。
完成后,修改默認用戶控件名稱為authorscontrol.。我們在上面添加了一個datagrid控件取名gridauthors 同時添加一個按鈕取名btnclick。注冊按鈕的點擊事件,在事件處理函數中,將會調用webservice。在這之前我們需要添加項目的web引用,輸入剛才創建的web服務地址。編輯器會生成該服務的代理,添加web服務引用如下:
圖
服務代理創建以后,我們在按鈕事件中添加代碼:
private void btnclick_click(object sender, system.eventargs e)
{
 this.cursor = cursors.waitcursor;
 authorswebserviceproxy.authorsservice authorssvc = new 
 authorswebserviceproxy.authorsservice();
 this.gridauthors.datasource = authorssvc.getauthors();
 this.cursor = cursors.default;
}
在上面代碼中,我們創建了web服務代理的一個實例,并調用getauthors方法把返回的數據集賦值給gridauthors的datasource屬性。接著編譯這個窗體控件,然后配置虛擬目錄。
創建html頁面和建立虛擬路徑
在這一步中,我們通過創建一個html頁面來使用上面創建的那個authorswebserviceclientcontrol。下面是他的代碼:
<html>
<body>
<p>authors display control<br><br>
<object id="authorscontrol1"
classid="http:authorswebserviceclientcontrol.dll#authorswebserviceclientcontrol.authorscontrol" 
height="500" width="500" viewastext> 
</object>
<br><br>
</body>
</html>
現在我們需要創建一個虛擬目錄使該控件能正常工作,并把authorsdisplay.htm和authorswebserviceclientcontrol.dll放在一起。打開該瀏覽器輸入地址,你就會看到一個按鈕和一個空的datagrid,如果你點擊該命令按鈕,控件就會調用web服務同時把結果寫到了datagrid中。頁面結果如下所示。
在下一節中我們看看對進程的調試。
本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。