当前位置: 首页 > news >正文

建设部法律法规网站网站图文列表

建设部法律法规网站,网站图文列表,襄阳网站建设找下拉哥科技,科学小制作#xff08;五#xff09;列表条目#xff08;SPListItem#xff09; SharePoint中数据的存储基本上都是通过列表条目来完成#xff08;文档库中的文档也是一种特殊的列表条目#xff09;#xff0c;因此在SharePoint应用开发中#xff0c;最终是要和列表条目打交道的…五列表条目SPListItem SharePoint中数据的存储基本上都是通过列表条目来完成文档库中的文档也是一种特殊的列表条目因此在SharePoint应用开发中最终是要和列表条目打交道的。在SharePoint对象模型中使用SPListItem表示列表条目使用SPListItemCollection表示列表条目集合。 1、列表条目的获取 列表条目的获取有多种方式一些常用方式如下 1 通过SPList的Items属性获取列表中的所有条目不包括文件夹本身对应的条目再通过foreach遍历的形式遍历其中的所有条目或使用形如[idx]的int型索引器获取其中的某个条目。当我们需要遍历一个列表中所有条目、或文档库中所有文档的时候不论它们属于哪个子文件夹我们就可以使用Items属性获取到全部列表条目或文档的集合。关于SharePoint列表中文件夹的一些特性会在下一节进行详细介绍。 2 当已知列表条目ID的时候可以通过SPList的GetItemById(int ID)方法或SPListItemCollection的GetItemById(int ID)方法获取到对应的列表条目。每个列表条目在本列表中都有一个唯一的整型ID。 需要说明的是使用GetItemById方法获取到的条目是包含列表中所有字段的值的。因此在SharePoint 2010种提供了一个名为GetItemByIdSelectedFields的方法只返回其中某些指定字段的值以减少数据库操作来提高读取效率严格的说该方法其实并非只会返回我们所指定的字段内容而是会忽略掉列表中除我们指定字段之外的所有查阅项包括用户和用户组类型的字段因为在返回查阅项类型值的时候底层数据库需要一些额外的查询。该方法的定义为 1: public SPListItem GetItemByIdSelectedFields( 2: int id, params string[] fields) 其中fields参数需要定义为内部名称。例如当我们仅需要获取某列表中ID为23的条目的“标题”字段内部名称为“Title”时可以使用如下的代码 1: SPListItem item spList.GetItemByIdSelectedFields(23, Title); 2: Console.WriteLine(Convert.ToString(item[Title]); 3 当已知列表条目的Guid的时候可以通过SPList的GetItemByUniqueId(Guid id)方法获取到对应的列表条目。 4 通过SPList的GetItems(SPView view)方法获取某个列表的某个特定视图下的所有列表条目集合返回SPListItemCollection类型。注意这种方法获取到的列表条目集合只包含该视图中所包含的那些字段而无法获取其他字段的内容。 5通过SPList的GetItems(SPQuery query)方法根据指定的查询条件返回列表中满足该查询条件的列表条目集合返回SPListItemCollection类型。这种方法在开发过程中经常会使用到应当熟练掌握在本章第四节终会详细讲解SPQuery的用法。 2、列表条目的内容访问 当得到一个列表条目对应的SPListItem对象后可以使用索引器来访问条目中相应字段的内容 使用item[fieldName]根据字段的显示名称或内部名称获取该条目该字段的内容返回值为object类型。使用item[fieldID]根据字段的Guid获取该条目该字短的内容返回值为object类型。 上述两种方法是一般获取列表条目内容最常用的两种手段第一种更常用但是获取的值都是object类型需要转换为相应的实际类型后再进行输出。如果我们直接将这个object转换成字符串我们会发现有些字段类型的值并不是在页面中显示的那样比如对于一个多选类型字段它的值可能是“;#选项1;#选项2;#”而一个用户和用户组类型的字段它的值可能会是“1;#Administrator”1是该用户的IDAdministrator则是显示名称。 当然当我们了解了这些字段类型的内置格式之后我们可以通过各种字符串处理的方法来得到我们所需要的显示结果。不过在SharePoint中还有一些更标准的方法。在栏/字段SPField章节的示例程序中已经介绍了如何将object类型的值转换为相应的数据类型。除此之外SharePoint的内置字段类型都提供了两个方法可以直接将列表条目的内容转换为可以直接输出的内容这两个方法是SPField的GetFieldValueAsText(object value)和GetFieldValueAsHtml(object value)其区别在于前者显示纯文本的内容而后者显示Html的内容某些字段中可能会包含一些格式或超链接等Html内容。例如下面的程序展示了如何使用这种方法获取字段的显示内容假设存在Chapters列表其中包含标题、链接、创建者等字段 1: using(SPSite site new SPSite(http://sp2010/book)) 2: { 3: using(SPWeb web site.OpenWeb()) 4: { 5: SPList list web.Lists[Chapters]; 6: SPField txtField list.Fields[标题], 7: lnkField list.Fields[链接], 8: userField list.Fields[创建者]; 9: foreach(SPListItem item in list.Items) 10: { 11: Console.WriteLine(string.Format({0}:{1} by {2}, 12: txtField.GetFieldValueAsText(item[标题]), 13: lnkField.GetFieldValueAsHtml(item[链接]), 14: userField.GetFieldValueAsText(item[创建者]))); 15: } 16: } 17: } 需要说明的是SPField的这两个方法并不能保证显示的样式和SharePoint内置的显示样式完全一致而且在某些情况下这种显示样式的输出是有问题的比如“超链接和图片”类型中的图片。实际上SharePoint内置的显示样式控制是通过另外一种机制来实现的。 3、其他形式的内容访问 除了上述方法能够获取列表条目的内容之外SharePoint对象模型中也提供了使用Xml形式以及DataTable形式访问列表条目内容的方法。 通过使用SPListItemCollection的Xml属性或SPListItem的Xml属性可以获得一组或一个列表条目内容的Xml形式表示。在Xml形式的表示中所有字段类型均使用字符串的格式输出其内容而所有字段均使用内部名称并在字段的内部名称前加上“ows_”这一前缀例如“ows_TitleChapter1”等。实际上这种Xml的表示和使用Web Services的方式获取到的列表条目的内容是完全一致的。 在传统的ASP.NET开发过程中开发人员最熟悉的数据结构是DataSet、DataTable等因为它可以很方便地绑定到各种数据显示控件中。在SharePoint中虽然使用了自己特有的一套对象模型来表示数据但是为了和传统的数据绑定方式兼容也提供了以DataTable形式获取列表数据的方法。 在通过各种方式获得到列表条目集合之后可以调用SPListItemCollection的GetDataTable方法不需要任何参数将这些列表数据转换为DataTable。但是需要说明的是转换出来的DataTable中的DataColumn的名称都是列表字段的内部名称其次使用该方法获得的DataTable中的数据格式SharePoint会根据字段类型进行一些处理例如将查阅项的文本获取出来隐去ID等但是对于多选类型依然没有进行很好的处理在进行数据绑定的时候这些数据格式需要加以注意。虽然在控制台程序中没有办法很方便地输出DataTable中的数据但是凭借Visual Studio的可视化调试功能我们可以直观地在调试过程中查看整个DataTable的内容如下图所示 此外在SharePoint 2010中为了更加方便何高效地使用DataTable来查看列表数据在SPList中新增了GetDataTable和AppendDataTable两个方法这两个方法的定义如下 1: public DataTable GetDataTable(SPQuery query, 2: SPListGetDataTableOptions flags, 3: out SPListItemCollectionPosition position) 4:  5: public void AppendDataTable(SPQuery query, 6: SPListGetDataTableOptions flags, 7: DataTable dataTable, 8: out SPListItemCollectionPosition position) 从命名中就可以很直观地了解到这两个方法的作用获取DataTable、追加内容到DataTable中。其中的几个通用参数的含义如下 querySPQuery指定返回列表条目时的查询、排序条件、条目数量限制等并指定需要返回哪些字段的值。和查询相关的内容将在本章第四节中进行详细介绍。flagsSPListGetDataTableOptions返回DataTable数据时的一些选项指定了如何返回布尔类型、查阅项类型和计算值类型的字段值。positionSPListItemCollectionPosition返回查询后的分页信息。关于分页查询的详细内容也将在本章第四节中进行详细介绍。 4、新建列表条目 列表条目的新建与其他类型对象的新建编辑有些不同见第一节中集合操作的部分列表条目新建的大致过程是1调用SPListItemCollection的Add方法返回一个待添加的条目SPListItem类型也可以使用SPList的AddItem方法SharePoint 2010新增的方法在执行该方法之后列表条目并没有被添加到SharePoint中2为各个需要设置值的字段设置值3调用SPListItem的Update方法将新的列表条目添加到SharePoint中。 下面的程序展示了一个列表条目的创建过程。假设网站中存在Chapters列表其中包含标题单行文本、作者用户和用户组、计划完成时间日期和时间等字段 1: using(SPSite site new SPSite(http://sp2010/book)) 2: { 3: using(SPWeb web site.OpenWeb()) 4: { 5: SPList list web.Lists[Chapters]; 6: SPListItem newItem list.Items.Add(); 7: newItem[标题] Ch02; 8: newItem[作者] 19; // 19是某个用户的ID 9: newItem[计划完成时间] DataTime.Today.AddDays(10); 10: newItem.Update(); 11: } 12: } 需要指出的是为列表条目的字段赋值的时候并不强制要求所赋的值和列表字段的原始数据类型相同例如对于“计划完成时间”这个时间日期类型的字段可以直接设置成DateTime类型的值也可以设置为形如“2009-9-9 10:10”这样的字符串但是要保证格式正确SharePoint会自动进行转换。在设置查阅项和人员类型的字段值的时候其正确的数据类型应为SPFieldLookupValue / SPFieldUserValue对于单选查阅项和单一的人员和组或SPFieldLookupValueCollection / SPFieldUserValueCollection对于多选查阅项和可以多选的人员和组但是可以直接设置形如“1;#ItemTitle”或“1;#Administrator;#2;#”这样的值对于单选的查阅项及人员和组甚至可以直接设置相应的ID值正如本例中所做的那样。 对于列表条目的编辑操作设置值的过程是完全相同的。 SPListItemCollection的Add方法以及SPList的AddItem方法都提供了一些重载用以创建文件夹或者在指定文件夹下创建列表条目。关于文件夹相关的内容将在本章第三节中进行详细介绍。 5、列表条目的常用属性 SPListItem的一些常用属性如下 名称 类型 说明 Attachments SPAttachmentCollection 列表条目的附件集合详见第三节 ContentType SPContentType 列表条目的内容类型 DisplayName string 列表条目的显示标题 Name string 列表条目的名称 Title string 列表条目的“标题”字段 Xml string 列表条目的Xml表示 File SPFile 列表条目对应的文档详见第三节 Folder SPFolder 列表条目对应的文件夹详见第三节 列表条目的DisplayName、Name和Title三个属性有些类似有兴趣的读者可以自行尝试一下他们在普通列表、文档库等类型的列表中各有什么关系和区别。
http://www.sadfv.cn/news/82536/

相关文章:

  • 网站关键词在哪设置网站开发团队分工
  • 网站维护建设费入什么科目大连省建设厅网站
  • 网站建设招标方式怎么做相亲网站
  • 阿里云部署一个自己做的网站吗合肥做公司网站联系方式
  • 海南城乡建设庁网站做网站手机
  • 如皋电子商城网站建设wordpress 封面图像
  • 如何自己建站网站制作长春 建设工程信息网站
  • 宁波新亚建设内部网站wordpress官方模版
  • 番禺区建设局网站网站需要什么服务器
  • 临沂做网站选盛誉微信知彼网络网站建设
  • 自动发卡网站开发wordpress插件常用
  • 湖南金辉建设集团有限公司网站wordpress更换头像插件
  • 网站建设中一般要多久揭阳网站制作
  • 邯郸外贸网站建设找别人做公司网站第一步做什么
  • 台州椒江找人做网站蒙文网站建设
  • 怎么做全民夺宝网站在服务器上部署网站
  • cp网站建设照片书哪家网站做的好
  • 品牌网站建设專註大蝌蚪vps服务器10元一月
  • 书店网站建设目标调研的方案手机网页设计app
  • 网站如何被百度快速收录dedecms 网站
  • 上海市网站建设青海休闲网站建设公司
  • 自己的ip做网站个人网页上传网站怎么做
  • 谷哥做网站 是如何推广的天津网站建设解决方案
  • gif动图素材网站网站不需要什么备案
  • 哪个行业该做网站但是没有做江苏省建设网站首页
  • 海关做预归类的网站西班牙语网站建设注意事项
  • 德州做名片的网站wordpress调整菜单栏距离
  • 教育局建设网站的必要性WordPress建站教程 网盘
  • 当当网电子商务网站建设ps彩屏做的好的网站
  • 请人做网站域名和主机高端网站建设服务商