?? Silverlight調用WebService只能使用異步方式調用。所謂異步方式調用就是讓調用方法的主線程不必同步等待在這個函數調用上,從而允許主線程繼續執行它下面的代碼。
?? Silverlight調用自定義的WebService分為四個步驟:
(1)、創建自定義的WebService
(2)、實現WebService
(3)、在Silverlight項目中添加服務引用
(4)、使用異步方式調用WebService
下面舉例介紹:
?? 比如說在MSSQL2000中建立一個名為SilverlightDB的數據庫,里面包含一張表Product,里面有2個字段Name和Price,舉例說明字段就隨便用兩個意思意思下。
?? 在Web.Config文件中配置數據庫連接字符串
<appSettings>
?? <add key="ConnectionString" value="Data Source=.;uid=sa;pwd=111111;Database=SilverlightDB"/>
</appSettings>
?接著定義一個和Product表對應的實體類Product.cs
[Serializable]
?? public class Product
?? {
?????? public string Name { get; set; }
?????? public double Price { get; set; }
?? }
再接著是添加一個Web服務,文件名為ProductService.asmx
在其中添加一個獲取產品列表的方法GetAllProduct
??????? [WebMethod]
?????? public List<Product> GetAllProduct()
?????? {
?????????? List<Product> products= new List<Product>();
?????????? //這里是從數據庫獲取數據,方式可以是ADO.NET、LINQ to SQL或者是ADO.NET Entity Framework,以下是用最簡單的ADO.NET來實現的
?????????? string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
?????????? using (SqlConnection con = new SqlConnection(connectionString))
?????????? {
?????????????? con.Open();
?????????????? string strSQL = "select * from Product";
?????????????? SqlCommand cmd = new SqlCommand(strSQL, con);
?????????????? SqlDataReader data = cmd.ExecuteReader();
?????????????? while (data.Read())
?????????????? {
?????????????????? Product product = new Product();
?????????????????? product.Name = data["Name"].ToString();
?????????????????? product.Price = double.Parse(data["Price"].ToString());
?????????????????? products.Add(product);
?????????????? }
?????????? }
?????????? return products;
?????? }
前臺顯示頁面MainPage.xaml中添加一個ListBox用于顯示數據
<ListBox x:Name="myBooks" Margin="101,144,158,124">
??<ListBox.ItemTemplate>
???<DataTemplate>
????<StackPanel>
?????<TextBlock Text="{Binding Name}"></TextBlock>
?????<TextBlock Text="{Binding Price}"></TextBlock>
?????<TextBlock Text="---------------------------------------------------------------"></TextBlock>
????</StackPanel>
???</DataTemplate>
??</ListBox.ItemTemplate>
?</ListBox>
在MainPage.xaml.cs文件中編寫調用WebService的代碼進行數據綁定
private void LayoutRoot_Loaded(object sender, System.Windows.RoutedEventArgs e)
?????? {
?????? ?? // TODO: Add event handler implementation here.
?????????? ProductServiceReference.ProductServiceSoapClient client = new NetworkSample.ProductServiceReference.ProductServiceSoapClient();
?????????? //注冊調用成功事件
?????????? client.GetAllProductCompleted += new EventHandler<NetworkSample.ProductServiceReference.GetAllProductCompletedEventArgs>(OnGetAllProductCompleted);
?????????? client.GetAllProductAsync();
?????? }
?????? private void OnGetAllProductCompleted(object sender, NetworkSample.ProductServiceReference.GetAllProductCompletedEventArgs e)
?????? {
?????????? //檢測調用是否成功
?????????? if (e.Error != null)
?????????? {
?????????????? return;
?????????? }
?????????? myBooks.ItemsSource = e.Result;
?????? }
至此,一個Silverlight調用自定義的WebService的案例就做好了。
- 前言
- VS2008打上SP1的補丁后安裝了silverlight后出現未將對象引用設置到對象實例的解決辦法
- Silverlight實現的簡單拖拽效果
- Silverlight調用自定義的Web Service從數據庫獲取數據進行頁面綁定
- asp.net頁面調用silverlight
- Silverlight顯示日期和時間
- Silverlight跑馬燈效果實現代碼
- Silverlight圖片驗證碼生成代碼
- 一個簡單的Silverlight視頻播放器
- Silerlight中利用TextBlock滾動顯示
- Silverlight中實現類似Telerik的TileView控件效果
- Silverlight之Combox用法
- 利用Blend制作一個簡單的用戶控件外觀
- aspx頁面上傳遞參數給Silverlight插件的方法
- Silverlight中Divelements.SilverlightTools之路徑是否存在判斷
- Silverlight中的一些Convert整理
- Silverlight中上標和下標等特殊腳注字符實現
- Silverlight4 幻燈片實現
- 在Silverlight中嵌入HTML或aspx頁面
- Silverlight中的圖表控件visifire的使用
- Silverlight中DataGrid控件動態生成列并結合DataPager進行分頁
- Silverlight Rectangle控件鼠標移入時的提示框
- Silverlight 之ComboBox控件選中項
- 后臺控制改變Silverlight 中的Ellipse控件的Fill填充圖片
- Silverlight關鍵字返紅顯示
- Silverlight中資源文件的引用
- Silverlight中通過調用WebService來顯示數據庫中以流形式保存的圖片
- Silverlight 使用RadTreeView動態綁定數據
- 框架頁中Silverlight和Web頁面之間跳轉和返回
- 一些Silverlight項目中的界面截圖
- Silverlight之ScrollViewer控件的水平和豎直滾動條位置控制
- Silverlight中利用WCF獲取客戶端IP
- Silverlight DataGrid 多重表頭實現
- Silverlight 一些網站收集
- Silverlight/WPF/Windows Phone 開發之MVVM設計模式之入門
- Telerik Silverlight 之Charting控件的使用
- Silverlight 案例鏈接收藏
- Silverlight獲取Web路徑
- Silverlight中利用Blend繪制可伸縮的Tab菜單
- Silverlight框架中定時監聽預警信息,使用SL線程DispatcherTimer解決
- Silverlight DataGrid 數據綁定鼠標移入到內容項時顯示類似ToolTip提示文本
- Silverlight插件安裝失敗,提示1603錯誤號的解決辦法
- Silverlight之Frame傳遞多個參數并獲取完整參數
- Silverlight頁面在兼容/高速模式下出現滾動條的解決辦法
- Silverlight添加服務引用Service Reference, 出現“自定義工具錯誤,無法生成服務引用”錯誤的解決辦法
- Silverlight ListBox 控件使用介紹
- Silverlight RadTreeView 控件使用介紹
- Silverlight中播放聲音mp3文件
- Silverlight TabControl和Accordion控件使用介紹
- Silverlight中多個storyboard順序播放(代碼實現)
- Silverlight 控件的ToolTip封裝工具使用
- Silverlight導出圖片需要的幾個類