Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下) - YJingLee??s Blog - 博客园

Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下) - YJingLee??s Blog - 博客园,第1张

概述YJingLee's Blog 把握点点滴滴! 博客园 社区 首页 新随笔 联系 管理 订阅 随笔- 74  文章- 0  评论- 891  Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下) Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下)
























YJingLee's Blog
把握点点滴滴!
@H_403_57@

博客园
社区
首页
新随笔
联系
管理
订阅



随笔- 74  文章- 0  评论- 891 









Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下)


Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下)

在上一篇中,我们把这个实例的基本部分完成了,也完成了Web Service关于调用数据库CRUD四个方法。这篇我们利用Silverlight 2完成这几个功能,由于本篇目的明确,分为四个 *** 作,每个 *** 作分别建立前台界面和后台代码实现,最后整合为一个整体。


上一篇:Silverlight 2 (beta1)数据 *** 作(1)——使用ASP.NET Web Service进行数据CRUD *** 作(上)


本篇包含以下内容:



添加数据部分
查询数据部分
修改数据部分
删除数据部分
整合程序
结语

我们把各个部分分别用用户控件实现,然后在Page.xaml中一起整合起来。


添加数据部分
前台界面


后台代码
//按钮事件
voID savebutton_Click(object sender,RoutedEventArgs e)
{
if (username.Text.Trim() == string.Empty)
{
errMessage.Foreground = new SolIDcolorBrush(colors.Red);
errMessage.Text = "请输入用户名称!";
errMessage.Visibility = Visibility.Visible;
return;
}
//调用WebService
WebServiceProxy.UserManageSoapClIEnt userMgrSoapClIEnt =
new YJingLee.WebSrv.WebServiceProxy.UserManageSoapClIEnt();
//创建用户 *** 作
userMgrSoapClIEnt.createuserAsync(username.Text);
userMgrSoapClIEnt.createuserCompleted +=
new EventHandler createuserCompletedEventArgs>
(userMgrSoapClIEnt_createuserCompleted);
}
voID userMgrSoapClIEnt_createuserCompleted( object sender,
YJingLee.WebSrv.WebServiceProxy. createuserCompletedEventArgs e)
{
if (e.Error == null)
{
errMessage.Text = "创建用户成功!";
errMessage.Foreground = new SolIDcolorBrush( colors.Blue);
errMessage.Visibility = Visibility.Visible;
}
else
{
errMessage.Foreground = new SolIDcolorBrush( colors.Red);
errMessage.Text = e.Error.ToString();
errMessage.Visibility = Visibility.Visible;
}
}

查询数据部分
前台界面

我们使用Silverlight 2自带的DataGrID控件绑定数据。前台非常简单,只是一个DataGrID控件,但是前段时间有的同学问DataGrID控件不知怎么弄进来。这里详细说明一下。


第一步:在Silverlight工程中添加引用



第二步:查找System.windows.Controls.Data程序集,添加进来



第三步:在UserControl中添加这个引用,有智能感知。我将其命名为Data。



在前台编写代码如下

<button x:name="rebutton" Content="刷新"
WIDth="50" Height="30" GrID.Row="0"> button>
<
Data:DataGrID x:name="userDataGrID" Height="200"
WIDth="700" margin="0,5,10"
autoGenerateColumns="True"
VerticalAlignment="top" GrID.Row="1">
Data:DataGrID>

后台代码
//显示数据
voID ListingControldisplay(object sender,RoutedEventArgs e)
{
WebServiceProxy.UserManageSoapClIEnt userMgrSoapClIEnt =
new YJingLee.WebSrv.WebServiceProxy.UserManageSoapClIEnt();
userMgrSoapClIEnt.RetrIEveUsersAsync();
userMgrSoapClIEnt.RetrIEveUsersCompleted +=
new EventHandler RetrIEveUsersCompletedEventArgs>
(userMgrSoapClIEnt_RetrIEveUsersCompleted);
}
voID userMgrSoapClIEnt_RetrIEveUsersCompleted( object sender,
YJingLee.WebSrv.WebServiceProxy. RetrIEveUsersCompletedEventArgs e)
{
if (e.Error == null)
displayData(e.Result);
}
private voID displayData( string xmlContent)
{
try
{
if (xmlContent != string.Empty)
{
Xdocument xmlUsers = Xdocument.Parse(xmlContent);
var users = from user in xmlUsers.Descendants( "User")
select new
{
UserID = Convert.ToInt32
(user.Element( "UserID").Value),
Username = ( string)
user.Element( "Username").Value
};
List< User> usersList = new List< User>();
foreach ( var u in users)
{
User use = new User
{ UserID = u.UserID,Username = u.Username };
usersList.Add(use);
}
userDataGrID.ItemsSource = usersList;
}
else
{
userDataGrID.ItemsSource = null;
}
}
catch ( Exception ex)
{

Console.Write(ex.Message);
}
}
public class User
{
public int UserID { get; set; }
public string Username { get; set; }
}

修改数据部分
前台界面


后台代码
voID updatebutton_Click(object sender,RoutedEventArgs e)
{
if (userID.Text.Trim() == string.Empty)
{
errMessage.Foreground = new SolIDcolorBrush(colors.Red);
errMessage.Text = "请输入用户ID!";
errMessage.Visibility = Visibility.Visible;
return;
}
if (username.Text.Trim() == string.Empty)
{
errMessage.Foreground = new SolIDcolorBrush(colors.Red);
errMessage.Text = "请输入用户名称!";
errMessage.Visibility = Visibility.Visible;
return;
}
WebServiceProxy.UserManageSoapClIEnt userMgrSoapClIEnt =
new YJingLee.WebSrv.WebServiceProxy.UserManageSoapClIEnt();
//调用更新用户方法
userMgrSoapClIEnt.UpdateUserAsync
(Int16.Parse(userID.Text.Trim()),username.Text.Trim());
userMgrSoapClIEnt.UpdateUserCompleted +=
new EventHandler UpdateUserCompletedEventArgs>
(userMgrSoapClIEnt_UpdateUserCompleted);
}
voID userMgrSoapClIEnt_UpdateUserCompleted( object sender,
YJingLee.WebSrv.WebServiceProxy. UpdateUserCompletedEventArgs e)
{
if (e.Error == null)
{
errMessage.Text = "修改用户成功!";
errMessage.Foreground = new SolIDcolorBrush( colors.Blue);
errMessage.Visibility = Visibility.Visible;
}
else
{
errMessage.Foreground = new SolIDcolorBrush( colors.Red);
errMessage.Text = e.Error.ToString();
errMessage.Visibility = Visibility.Visible;
}
}

删除数据部分
前台界面


后台代码
voID deletebutton_Click(object sender,RoutedEventArgs e)
{
if (userID.Text.Trim() == string.Empty)
{
errMessage.Foreground = new SolIDcolorBrush(colors.Red);
errMessage.Text = "请输入用户ID!";
errMessage.Visibility = Visibility.Visible;
return;
}
WebServiceProxy.UserManageSoapClIEnt userMgrSoapClIEnt =
new YJingLee.WebSrv.WebServiceProxy.UserManageSoapClIEnt();
//调用删除方法
userMgrSoapClIEnt.DeleteUserAsync
(Int16.Parse(userID.Text.Trim()));
userMgrSoapClIEnt.DeleteUserCompleted+=
new EventHandler DeleteUserCompletedEventArgs>
(userMgrSoapClIEnt_DeleteUserCompleted);
}

voID userMgrSoapClIEnt_DeleteUserCompleted( object sender,
YJingLee.WebSrv.WebServiceProxy. DeleteUserCompletedEventArgs e)
{
if (e.Error == null)
{
errMessage.Text = "删除用户成功!";
errMessage.Foreground = new SolIDcolorBrush( colors.Blue);
errMessage.Visibility = Visibility.Visible;
}
else
{
errMessage.Foreground = new SolIDcolorBrush( colors.Red);
errMessage.Text = e.Error.ToString();
errMessage.Visibility = Visibility.Visible;
}
}

整合程序

在Page.xaml页面中布局,并引入用户控件,添加4个Hyperlinkbutton ,单击事件用户控件在中间区域显示。例如下面一个按钮事件:

deleteCtl.Visibility = Visibility.Visible;
entryCtl.Visibility = Visibility.Collapsed;
ListingCtl.Visibility = Visibility.Collapsed;
editCtl.Visibility = Visibility.Collapsed;

最终效果图如下所示:



结语

利用这个实例我们学习了在Silverlight 2中使用ASP.NET Web Service进行数据CRUD *** 作,这里有一些细节没有完善,比如输入框的验证问题等。下一篇我们利用ADO.NET Data Service来 *** 作数据。

总结

以上是内存溢出为你收集整理的Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下) - YJingLee??s Blog - 博客园全部内容,希望文章能够帮你解决Silverlight 2 (beta1)数据 *** 作(2)——使用ASP.NET Web Service进行数据CRUD *** 作(下) - YJingLee??s Blog - 博客园所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1055876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存