silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

学SL有一段时间了,可是总感觉缺少点什么,那就是实际应用,怎么能把SL应用到我的项目中呢?一直是一个难题,我是个懒人喜欢用Dataset来 帮我做一些底层数据访问的工作,SL毕竟是表示层的技术,对数据访问是门外汉,只能用过wcf或webservice来实现异步调用,今天把我的学习笔记 给大家看看,没有太高深的技术,只是共享而已,大家如果有别的方法欢迎指教!    新建一个Silverlight应用

学SL有一段时间了,可是总感觉缺少点什么,那就是实际应用,怎么能把SL应用到我的项目中呢?一直是一个难题,我是个懒人喜欢用Dataset来 帮我做一些底层数据访问的工作,SL毕竟是表示层的技术,对数据访问是门外汉,只能用过wcf或webservice来实现异步调用,今天把我的学习笔记 给大家看看,没有太高深的技术,只是共享而已,大家如果有别的方法欢迎指教!

   新建一个Silverlight应用程序,再选择web应用程序

Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用

  在webapplication中添加一个数据集(Dataset),我用的是“NORTHWND.MDF”大家可以去ms网站去下载。

Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用

    在查询里面添加一个

          SELECT CustomerID,CompanyName,ContactName,Contacttitle,Address,City,Region,PostalCode,Country,Phone,Fax FROM Customers WHERE (City LIKE '%' + @City + '%')

    新建一个“CustomersClass.cs” 实体类

public class CustomersClass
{

public String CustomerID { get; set; }

public String CompanyName { get; set; }

public String ContactName { get; set; }

public String Contacttitle { get; set; }

public String Address { get; set; }

public String City { get; set; }

}

为了操作方便,我只选择其中几个字段内容,大家有需要可以自己添加

下面开始添加webservice,这个是重点:

public class SLWebservice : System.Web.services.Webservice
{
        //实例化Dataset
        SLDataSetTableAdapters.CustomersTableAdapter Dal = 
new SilverLightcnblogs.Web.SLDataSetTableAdapters.CustomersTableAdapter();

[WebMethod]
public CustomersClass[] GetCustomersByCity(String City)
{
List<CustomersClass> CustomersC = new List<CustomersClass>();
SLDataSet.CustomersDataTable DT = new SLDataSet.CustomersDataTable();

DT = Dal.GetDataByCity(City);

//foreach循环将dataset中数据取出
foreach (SLDataSet.CustomersRow DD in DT.Rows)
{
CustomersClass CC = new CustomersClass();

CC.Address = DD.Address.ToString();

CC.City = DD.City.ToString();

CC.CompanyName = DD.CompanyName.ToString();

CC.ContactName = DD.ContactName.ToString();

CC.Contacttitle = DD.Contacttitle.ToString();

CC.CustomerID = DD.CustomerID.ToString();

CustomersC.Add(CC);

}

System.Threading.Thread.Sleep(2000); //延时一下为了看效果

return CustomersC.ToArray();
}

[WebMethod]
public String HelloWorld()
{
return "Hello World";
}

}

最后别忘了把动态端口改成固定的!!

下面我来Silverlight,添加“服务引用”“发现”,这些大家都很熟了,不详细说了!

在Page.xaml文件添加

<Grid x:Name="LayoutRoot" BACkground="White">
<
Grid.columnDeFinitions>
<
columnDeFinition Width="*"/>
</
Grid.columnDeFinitions>

<
StackPanel Height="Auto" @H_701_355@margin="0,13,0" VerticalAlignment="Top" Orientation="Horizontal"
HorizontalAlignment="Right" Width="385">
<
TextBlock Height="21" Width="27" Text="City:" textwrapping="Wrap" d:LayoutOverrides="Width,Height"
HorizontalAlignment="Center" VerticalAlignment="Center" @H_701_355@margin="0,20,0"/>
<
TextBox x:Name="CityText" Height="21" Width="86" Text="" textwrapping="Wrap"
HorizontalAlignment="Stretch" VerticalAlignment="Center" @H_701_355@margin="0,22,0"/>
<
Button x:Name="Seach" Height="Auto" HorizontalAlignment="Right" @H_701_355@margin="0,14,0"
VerticalAlignment="Center" Width="95" Content=" Seach" Click="Seach_Click"/>
<
ProgressBar x:Name="PBar" Height="13" Width="108" IsIndeterminate="True" Visibility="Collapsed"/>
</
StackPanel>
<
data:DataGrid x:Name="DataGrid" HorizontalAlignment="Stretch" AutoGeneratecolumns="false"
@H_701_355@margin="8,49,8,20" Width="Auto" IsReadOnly="True">
<
data:DataGrid.columns >
<
data:DataGridTextcolumn Header="CustomerID" Width="auto" Binding="{Binding CustomerID}">
</data:DataGridTextcolumn>
<
data:DataGridTextcolumn Header="CompanyName" Width="auto" Binding="{Binding CompanyName}">
</data:DataGridTextcolumn>
<
data:DataGridTextcolumn Header="ContactName" Width="auto" Binding="{Binding ContactName}">
</data:DataGridTextcolumn>
<
data:DataGridTextcolumn Header="Contacttitle" Width="auto" Binding="{Binding Contacttitle}">
</data:DataGridTextcolumn>
<
data:DataGridTextcolumn Header="Address" Width="auto" Binding="{Binding Address}">
</data:DataGridTextcolumn>
<
data:DataGridTextcolumn Header="City" Width="auto" Binding="{Binding City}">
</data:DataGridTextcolumn>
</
data:DataGrid.columns>
</
data:DataGrid>

</
Grid>

@L_696_28@

编写C#代码

        private void Seach_Click(object sender,RoutedEventArgs e)
{
this.Seach.IsEnabled = false;
this.PBar.Visibility = Visibility.Visible;//显示进度条
this.DataGrid.Opacity = 0.5; //修改透明度
//异步调用
SC.GetCustomersByCityAsync(this.CityText.Text.ToString());
SC.GetCustomersByCityCompleted +=
new EventHandler<SilverLightcnblogs.serviceReference1.GetCustomersByCityCompletedEventArgs>(SC_GetCustomersByCityCompleted);
}

void SC_GetCustomersByCityCompleted(object sender,SilverLightcnblogs.serviceReference1.GetCustomersByCityCompletedEventArgs e)
{ //异步调用完毕
this.DataGrid.Itemssource = e.Result;
this.Seach.IsEnabled = true;
this.PBar.Visibility = Visibility.Collapsed;
this.DataGrid.Opacity = 1;
}
现存问题:当用"DataGrid"是,不知道怎么控制

Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用

字体及对齐,请高手指教
源代码下载

大佬总结

以上是大佬教程为你收集整理的Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用全部内容,希望文章能够帮你解决Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。