在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 ...
随机推荐
- 学习iOS前我们需要知道的事情
什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...
- Java ThreadLocal
ThreadLocal类,代表一个线程局部变量,通过把数据放在ThreadLocal中,可以让每个线程创建一个该变量的副本.也可以看成是线程同步的另一种方式吧,通过为每个线程创建一个变量的线程本地副本 ...
- js自执行函数的几种不同写法的比较
经常需要一个函数自执行,可惜这一种写法是错的: function(){alert(1);}(); 原因是前半段“function(){alert(1);}”被当成了函数声明,而不是一个函数表达式,从 ...
- redmine + apache + mod_fcgid
redmine默认是用webrick启动的,这种方法不适合生产环境,最好部署在apache下,本文介绍如何通过mod_fcgid启动. 首先要有一个能够启动的redmine,可以通过我之前的博文查看: ...
- Java Se:Java Security
Java API中有很多都使用了SecurityManager,这到底是什么玩意?最近看公司的产品的源码,也有不少SecurityManager.AccessControlContext等相关的代码, ...
- CSS:布局的三个关键属性:float、position、display
最近在出差,就我一个在这里.客户要做几个页面,涉及到了页面的布局问题,没办法自己得做了.然后就遇到了一些问题.页面不论怎么都不能按照设想的布局. 以前也没有做过网页布局方面的工作.上网上找类似的例子, ...
- mybatis 中#{}与${}的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...
- HTML的基本代码第一课
打开DREAMWEAVER,新建HTML,如下图: 其中body的属性: bgcolor---页面背景颜色 text--文字颜色 topmargin--上页边距 leftmargin--左叶边距 ri ...
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
使用 proxy-target-class="true" 强制配置了 cglib 代理,于是包上面的错误,加入了 asm.jar 报也一样报错. 错误原因是,lib 中有两个cgl ...