微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

前台界面

添加数据界面

后台代码

//按钮事件
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<YJingLee.WebSrv.WebServiceProxy.
            createuserCompletedEventArgs>
            (userMgrSoapClient_createuserCompleted);
}
void userMgrSoapClient_createuserCompleted(object sender,YJingLee.WebSrv.WebServiceProxy.createuserCompletedEventArgs e)
{
    if (e.Error == null)
    {
        errMessage.Text = "创建用户成功!";
        errMessage.Foreground = new Colors.Blue);
        errMessage.Visibility = Visibility.Visible;
    }
    else
    {
        errMessage.Foreground = new Colors.Red);
        errMessage.Text = e.Error.ToString();
        errMessage.Visibility = Visibility.Visible;
    }
}

查询数据部分

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

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

添加引用

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

查找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">
</DataGrid>

//显示数据 void ListingControldisplay(object sender,175)">RoutedEventArgs e) { WebServiceProxy.UserManageSoapClient(); userMgrSoapClient.RetrieveUsersAsync(); userMgrSoapClient.RetrieveUsersCompleted += new RetrieveUsersCompletedEventArgs> (userMgrSoapClient_RetrieveUsersCompleted); } void userMgrSoapClient_RetrieveUsersCompleted(object sender,175)">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 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,175)">RoutedEventArgs e) { if (userID.Text.Trim() == string.Empty) { errMessage.Foreground = new "请输入用户ID!"; errMessage.Visibility = Visibility.Visible; return; } if (userName.Text.Trim() == string.Empty) { errMessage.Foreground = new Visibility.Visible; return; } WebServiceProxy.UserManageSoapClient(); //调用新用户方法 userMgrSoapClient.UpdateUserAsync (Int16.Parse(userID.Text.Trim()),userName.Text.Trim()); userMgrSoapClient.UpdateUserCompleted += new UpdateUserCompletedEventArgs> (userMgrSoapClient_UpdateUserCompleted); } void userMgrSoapClient_UpdateUserCompleted(object sender,175)">UpdateUserCompletedEventArgs e) { if (e.Error == null) { errMessage.Text = "修改用户成功!"; errMessage.Foreground = new 删除数据部分

删除数据界面

void deleteButton_Click(object sender,175)">UserManageSoapClient(); //调用删除方法 userMgrSoapClient.DeleteUserAsync (Int16.Parse(userID.Text.Trim())); userMgrSoapClient.DeleteUserCompleted+= new DeleteUserCompletedEventArgs> (userMgrSoapClient_DeleteUserCompleted); } void userMgrSoapClient_DeleteUserCompleted(object sender,175)">DeleteUserCompletedEventArgs e) { if (e.Error == null) { errMessage.Text = "删除用户成功!"; errMessage.Foreground = new 整合程序

在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来操作数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐