SP2010开发和VS2010专家"食谱"--第七章节--使用客户端对象模型(5)--Using a Silverlight Object Model

SP2010开发和VS2010专家"食谱"--第七章节--使用客户端对象模型(5)--Using a Silverlight Object Model

        Silverlight是一个开发平台,用来开发富Internet应用程序,跨浏览器、跨平台兼容。Silverlight应用程序可以通过一个浏览器插件执行,意味着它可以在客户机的IE中运行。通过使用Silverlight和SharePoint作为数据源,你可以为用户开发视觉上引人的客户端。
        本次食谱中,我们使用Silverlight创建一个Silverlight应用程序。像之前的食谱一样,此应用程序将显示来自联系人列表的列表项目。

Getting ready

        之前的食谱必须被成功完成。另外,在你的网站创建一个新的文档库XAPFiles。

How to do it...

        为了使用Silverllight对象模型,请遵循下面步骤:
1. 以管理员身份打开VS。
2. 创建新空白SP项目SilverlightOM,接受后面步骤的默认。
3. 添加新Silverlight应用程序ContactsListSilverlight。
4. 添加新模块,命名XAPFiles。
5. 删除Sample.txt文件。Elements.xml文件将会自动更新。
6. 在属性窗口,点击Project Output References:

7. 这会打开Project Output References窗口。点击添加按钮,将ContactsListSilverlight项目作为成员,设置Deployment Type为ElementFile。

8. VS自动更新模块中元素文件。打开模块中Elements.xml文件,添加一个URL属性到Module元素,设置其值为文档库名。这里是XAPFiles。添加Type属性到文件元素,设置为GhostableInLibrary。现在你的Elements.xml文件应该是这样的:
<?xml version="1.0" encoding="utf-8"?>  
9. 添加引用到Silverlight客户端对象模型程序集到ContactsListSilverlight项目。
10. 添加一个datagrid和按钮到MainPage.xaml,你的XAML文件应该是这样的:

        
11. 添加代码从联系人列表抽取联系人。你的代码应该是这样的:
namespace ContactsListSilverlight
{
    public class MyContacts
    {
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public string BusinessPhone { get; set; }
        public string EmailAddress { get; set; }
    }
    public partial class MainPage : UserControl
    {
        private Microsoft.SharePoint.Client.Web _web;
        private Microsoft.SharePoint.Client.List _list;
        private ListItemCollection _listItemCol;
        public MainPage()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender,RoutedEventArgs e)
        {
            ClientContext context = new ClientContext(ApplicationContext.Current.Url);
            _web = context.Web;
            context.Load(_web);
            _list = _web.Lists.GetByTitle("Contacts");
            var query = new CamlQuery();
            var rowLimit = "5";
            query.ViewXml = rowLimit;
            _listItemCol = _list.GetItems(query);
            context.Load(_listItemCol);
            context.Load(_list);
            context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnSuccessRequest), new ClientRequestFailedEventHandler(
OnFailedRequest));
        }
        private void OnSuccessRequest(Object sender,ClientRequestSucceededEventArgs args)
        {
            Dispatcher.BeginInvoke(FillGrid);
        }
        private void OnFailedRequest(Object sender,ClientRequestFailedEventArgs args)
        {
            MessageBox.Show("Request Failed: " + args.Message + ",Stack Trace:" + args.StackTrace);
        }
        private void FillGrid()
        {
            List _myContacts = new List();
            foreach(ListItem item in _listItemCol)
            {
                _myContacts.Add(new MyContacts
                {
                    LastName = item["Title"].ToString(),
                    FirstName = item["FirstName"].ToString(),
                    BusinessPhone = item["WorkPhone"].ToString(),
                    EmailAddress = item["Email"].ToString()
                });
            }
            dataGrid1.ItemsSource = _myContacts;
        }
    }
}
12. 生成并部署项目。你会看到XAP文件部署到你的文档文件夹XAPFiles中。
13. 添加Silverlight WebPart到页面,提供XAP文件的URL如下:

14. Silverlight WebPart输出如下:

How it works...

        Silverlight对象模型中类和方法和托管、JS对象模型类似。Silverlight中程序使用异步执行(像JS一样)。代码也和JS菜谱中差不多。
与JS OM相似,我们为SuccessRequest和FailedRequest定义事件处理器。我们也有回调方法用联系人填充grid。无论什么时候使用客户端对象模型创建Silverlight应用程序,你都将遵循此步骤。

There's more...

        Silverlight应用程序中错误处理和其他两个方法遵循相同模式。你可以使用ExceptionScopeHandling(修改的try和catch块)。

See also

  1. 使用客户端对象模型创建列表菜谱;
  2. 处理异常菜谱;
  3. 使用JS对象模型菜谱。

MySQL数据库从入门实战课

12-31
限时福利1:购课进答疑群专享柳峰(刘运强)老师答疑服务。 限时福利2:购课后添加学习助手(微信号:csdn590),按消息提示即可领取编程大礼包! 注意:原价129的课程,最后2天限时秒杀仅需49元!! 为什么说每一个程序员都应该学习MySQL? 根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。 使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能! 【课程设计】 在本课程中,刘运强老师会结合自己十多年来对MySQL的心得体会,通过课程给你分享一条高效的MySQL入门捷径,让学员少走弯路,彻底搞懂MySQL。 本课程包含3大模块:&nbsp; 一、基础篇: 主要以最新的MySQL8.0安装为例帮助学员解决安装与配置MySQL的问题,并对MySQL8.0的新特性做一定介绍,为后续的课程展开做好环境部署。 二、SQL语言篇: 本篇主要讲解SQL语言的四大部分数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,学会熟练对库表进行增删改查等必备技能。 三、MySQL进阶篇: 本篇可以帮助学员更加高效的管理线上的MySQL数据库;具备MySQL的日常运维能力,语句调优、备份恢复等思路。 &nbsp;

高性能MySQL实战课

05-21
限时福利1:原价 129 元,最后2天仅需 69 元!后天涨价至98元 限时福利2:购课进答疑群专享柳峰(刘运强)老师答疑服务 限时福利3:购课添加助教领取价值 800 元的编程大礼包 为什么需要掌握高性能的MySQL实战? 由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。 为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点,建议收藏! 【课程设计】 课程分为四大篇章,将为你建立完整的 MySQL 知识体系,同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。 一、性能优化篇: 主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ,学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引,从而彻底掌握索引的使用和优化技巧,能够避开很多实战中遇到的“坑”。 二、MySQL 8.0新特性篇: 主要包括窗口函数和通用表表达式。企业中的许多报表统计需求,如果不采用窗口函数,用普通的 SQL 语句是很难实现的。 三、高性能架构篇: 主要包括主从复制和读写分离。在企业的生产环境中,很少采用单台MySQL节点的情况,因为一旦单个节点发生故障,整个系统都不可用,后果往往不堪设想,因此掌握高可用架构的实现是非常有必要的。 四、面试篇: 程序员获得工作的第一步,就是高效的准备面试,面试篇主要从知识点回顾总结的角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪的工作机会。
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值