在SharePoint列表中使用自增栏
问:sps2010里能不能新建个栏,数字型的,自动加一
答:在SharePoint里,有很多方法可以实现一个自增栏。在这里,我将介绍其中两种方式。
1、计算栏
2、列表项事件接收器
1、采用计算栏来实现:
这是最最简单的方法。这样无需编写任何代码就可以实现一个自增栏。我们只需要创建一个栏,栏类型选择计算值(基于其他栏的计算)。然后在公式一节,输入[ID]。
事实上,我们是取SharePoint内置的ID字段,该字段是从1开始的。
如果你想从100开始自增1,那么你可以修改公式为[ID]+99就可以了。
2、使用列表项事件接收器来实现:
当然如果通过代码实现就更地道了。这样的好处是可以允许用户编辑已生成的值。当然我们也可以可以写代码通过Feature的激活和关闭来控制该字段的可见性,只读性等。通过列表项事件接收器,在ItemAdded事件上,我们可以查找之前添加的项中的最大值,然后自增后将值存到当前新添加的项对应的自增栏上。
代码参考:
public override void ItemAdded(SPItemEventProperties properties)
{
SPWeb web = properties.OpenWeb();
bool allowUpdates = web.AllowUnsafeUpdates; //store original value
this.EventFiringEnabled = false; try
{
web.AllowUnsafeUpdates = true;
/*获取列表*/
SPList list = web.Lists[properties.ListId];
var highestvalue = ;
var objQuery = new SPQuery
{
Query ="<OrderBy><FieldRef Name='" + 栏名称
+"' Ascending='False' /></OrderBy><RowLimit>1</RowLimit>",
Folder = list.RootFolder
}; SPListItemCollection colItems = list.GetItems(objQuery);
if (colItems.Count > )
{
highestvalue = int.Parse(colItems[][ColumnName].ToString());
} var currItem = properties.ListItem;
currItem[ColumnName] = highestvalue + ;
currItem.SystemUpdate(false); }
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
finally
{
this.EventFiringEnabled = true;
web.AllowUnsafeUpdates = allowUpdates; //恢复原值
}
}
祝,工作开心!
参考资料
Creating auto-increment field in SharePoint List
在SharePoint列表中使用自增栏的更多相关文章
- SharePoint 列表中增加列编辑功能菜单
需求描述 在企业的部署中,经常将SharePoint和TFS集成在一起,两个系统之间相互读取数据,展现开发进度.在TFS 2018之前版本中,由于TFS的门户定制功能有限,用户比较喜欢使用ShareP ...
- 限制用户不能删除SharePoint列表中的条目(项目)
概述 SharePoint列表提供了一个用于在线协作的电子表格,不同的用户可以同时在不同的地方编辑一套数据. 列表功能在收集用户信息.提供审批流程方面为办公人员提供了非常便捷的好处. 既然是协作办公, ...
- python中列表中元素的增删改查
增: append : 默认添加到列表的最后一个位置 insert : 可以通过下标添加到列表的任意位置 extend: a.extend[b] --将b列表的元素全加入到列表b中 删; remove ...
- 在SharePoint列表中使用动态筛选条件[今日][Today]
如果在SharePoint使用了日历控件或者其他列表中有时间字段,用户经常希望能够动态使用条件字段进行筛选,例如希望筛选出开始日期是今天的事件.未来三日的事件. SharePoint的列表筛选条件支持 ...
- XML To Linq 读取Sharepoint列表中的附件列信息
通过页面查看,列表附件信息列的内容如下: var x = @"<div class='ExternalClass9936DCD1F074427B891D09CFCEFC2AB6'> ...
- 在SharePoint Online或SharePoint本地列表中缺少功能区
您可能会遇到在SharePoint Online或SharePoint内部部署列表中看不到功能区的情况.功能区可以轻松访问SharePoint列表中的常见任务.它还提供了有用的工具,例如连接到Outl ...
- SharePoint 2013中规划企业搜索体系结构
摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...
- 在 SharePoint 2010 中访问数据
转:http://blog.banysky.net/?p=81001 数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ ...
- 在 SharePoint 2013 中针对地理位置字段创建地图视图
在 SharePoint 2013 中针对地理位置字段创建地图视图 了解如何通过在 SharePoint 2013 列表中使用地图视图来显示位置信息.您可以通过 SharePoint 用户界面 (UI ...
随机推荐
- MongoDB 安装(Window/Linux)
MongoDB安装在Windows上 在 Windows上,首先要安装 MongoDB下载最新发布的MongoDB: http://www.mongodb.org/downloads 确保得到正确的版 ...
- PHP数据的序列化/反序列化
最近在接触一个叫做medoo的mysql框架,这个框架有一个特点,在insert/update时,如果你给进的数据是array的话会自动转成序列化字符串,说实话这个东西以前还没怎么接触过,索性去搜索了 ...
- Linux 虚拟机网络适配器从E1000改为VMXNET3
我们知道VMware的网络适配器类型有多种,例如E1000.VMXNET.VMXNET 2 (Enhanced).VMXNET3等,就性能而言,一般VMXNET3要优于E1000,下面介绍如果将Lin ...
- 由一个订单推送想到了ObservableCollection的神奇用法
最近在做taobao的一个卖家应用,需要订阅taobao的订单推送,示例代码如下: 看到上面的OnMessage场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...
- .NET领域驱动设计—看DDD是如何运用设计模式颠覆传统架构
阅读目录: 1.开篇介绍 2.简单了解缘由(本文的前期事宜) 3.DomainModel扩展性(运用设计模式设计模型变化点) 3.1.模型扩展性 3.2.设计模式的使用(苦心专研的设计模式.设计思想可 ...
- 3、eclipse和maven环境安装以及HDFS读写的demo
安装eclipse和maven环境 $ mkdir /home/beifeng/.m2 $ tar zxf repository.tar.gz -C /home/beifeng/.m2 $ /co ...
- 好用的排名函数~ROW_NUMBER(),RANK(),DENSE_RANK() 三兄弟
排名函数三兄弟,一看名字就知道,都是为了排名而生!但是各自有各自的特色!以下一个例子说明问题!(以下栗子没有使用Partition By 的关键字,整个结果集进行排序) RANK 每个值一个排名,同样 ...
- python简单爬虫定时推送同花顺直播及荐股至邮箱
1.初衷:实践 2.技术:python requests Template 3.思路:根据直播页面获取评价最高的前十博主,定时爬行最新的消息和实战股票 4.思路:python 编辑简单邮件html模板 ...
- 【mysql】数据库使用的一些规范
一.MySQL存在的问题 优化器对复杂SQL支持不好 对SQL标准支持不好 大规模集群方案不成熟,主要指中间件 ID生成器,全局自增ID 异步逻辑复制,数据安全性问题 Online DDL HA方案不 ...
- android oncreate获取宽高度
gridView = (GridView) getView().findViewById(R.id.gridView_musicbook); gridView.getViewTreeObserver( ...