设置列表字段为主键

转贴:Sample event handler to set a field as a pr imary key (enforce no duplicates)

Got this as a request from a reader- how to prevent users from adding items with same titles as ones that already exist in the list.

Code
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace SPSTIPS.SharePoint.EventHandlers
{
    
public class TitlePrimaryEventHandler:SPItemEventReceiver
    
{
        
const string TITLE_QUERY = @"<Query><Where><Eq><FieldRef Name=""Title"" /><Value Type=""Text"">{0}</Value></Eq></Where></Query>";
        
public override void ItemAdding(SPItemEventProperties properties)
        
{
            
if (properties.AfterProperties["Title"!= null)
            
{
                
//get the title of the new item
                string currentTitle = properties.AfterProperties["Title"].ToString();
                
//get the web site object
                using (SPWeb web = properties.OpenWeb())
                
{
                     
//get the current list
                    SPList list = web.Lists[properties.ListId];
                    
//query the list to check if there are items with the same title
                    SPQuery q = new SPQuery();
                    q.Query 
= string.Format(TITLE_QUERY, currentTitle);
                    SPListItemCollection itemsWithSameTitle 
= list.GetItems(q);
                    
//if there are items, cancel the add, and show an error to the user.
                    if (itemsWithSameTitle.Count > 0)
                    
{
                        properties.Cancel 
= true;
                        properties.ErrorMessage 
= "There is already an item with the title \"" + currentTitle + "\" in this list\".";
                    }

                }

            }

        }

    }

}



上面的代码中,已经写了使用方法,就是用SPWeb web = properties.OpenWeb()

转载于:https://www.cnblogs.com/LifelongLearning/archive/2008/03/23/1118504.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

被学校辞退、拒绝FB后:语音识别大牛Povey确认兼职北京初创公司,称主业还选中国...

全世界只有3.14 % 的人关注了青少年数学之旅由于5月的学生抗议事件&#xff0c;语音识别领域著名学者、原约翰霍普金斯大学教授Daniel Povey被学校辞退。随后&#xff0c;Daniel Povey准备进入Facebook从事语音识别系统的开发&#xff0c;但是由于Facebook要对其进行长达6周的审…

也谈子网划分和子网通信

子网划分和子网通信在小型网络中应用不多&#xff0c;但随着公司规模的扩大&#xff0c;这样的问题就会提上网管的工作计划。资料略加整理&#xff0c;希望对各位有帮助。也谈子网划分和子网通信1.网络IP地址和子网掩码的分类&#xff1a;A类&#xff1a;IP: 0.0.0.0 &#xff…

java io流学设置编码_Java学习日志(21-2-IO流-基本数据类型与字节数组对象与、编码解码)...

操作基本数据类型的流对象DataStream/*可以用于操作基本数据类型数据的流对象*/import java.io.*;class DataStreamDemo{public static void main(String[] args)throws IOException{// writeData();// readData();// writeUTFDemo();// OutputStreamWriter oswnew OutputStrea…

dotnet中的counters说明(二)

上篇说了System.Runtime&#xff0c;它负责应用运行的环境资源的收集&#xff0c;这篇要继续说AspNetCore的Hosting,Http.Connections和Server.Kestrel三个计数器。同时&#xff0c;下面指标各项()里的项目是--counters 参数[]里的项&#xff0c;用逗号分隔多项指标。Microsoft…

Asp组件中级入门与精通系列之五

我们学习来看一下Response对象。其实我们前面的教程中一直都在使用这个对象的Write方法。 这里我们用Response对象设置cookie。 ? 打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fZ5 引用“Microsoft Active Server Pages Object”对象库。 创建两个组件事件&…

有这些好习惯,可以让你悄悄变优秀

全世界只有3.14 %的人关注了青少年数学之旅这是一个普遍无趣的时代&#xff0c;很多人看似忙到起飞内在却空虚迷茫。今天我们为你诚意推荐几个公众号它们会成为你生活的一剂调味料&#xff0c;让你做一个学识丰富、灵魂有趣的人。快来关注&#xff0c;开启精彩的生活吧&#xf…

java设置access-allow_Java Web如何设置多个Access-Control-Allow-Origin

有没有办法让Access-Control-Allow-Origin header允许设置multiple cross-domains呢&#xff1f;如果设置response.addHeader("Access-Control-Allow-Origin","*");感觉这个接口太开放了&#xff0c;不太安全。 我想只设置自己指定的若干个域名或者端口可以…

paip.提升用户体验--提升java的热部署热更新能力

paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力 "fix online"/在线修复吗&#xff1f;&#xff1f;直接在服务器上修改源码生效&#xff0c;无需重启应用。。作者Attilax 艾龙&#xff0c; EMAIL:1466519819qq.com来源&#x…

夏利车电动窗功能设定

夏利车电动窗功能设定 我车的前有门电动车窗坏了&#xff0c;所以去汽配城购买了电动升降器&#xff0c;准备自己进行更换&#xff0c;修车的要我100元RMB&#xff0c;自己购买配件花了我65省了35元呵呵&#xff0c; 但是自己花了很长时间更换完成之后发现车窗怎么也关不严&…

微软 MS Learn 上线 Blazor 入门教程

微软官方学习网站 MS Learn 上线了 Blazor 入门教程模块&#xff0c;希望通过这个课程&#xff0c;让开发人员了解如何设置开发环境&#xff0c;以及如何使用 Blazor、Visual Studio Code 和 C# 生成你的首个 Web 应用。Build a web app with Blazor - Learndocs.microsoft.com…

Type Casting

Type Casting C : Documents : C Language Tutorial : Type Casting Search: userpass[register] javascript and cookies required C Language TutorialIntroduction?Instructions for useBasics of C?Structure of a program?Variables. Data Types.?Constants?Oper…

世界最牛实验室,堪称诺贝尔奖孵化器!到底是个怎样神奇的存在?!

▲ 点击查看随着诺贝尔各个奖项陆陆续续的公布&#xff0c;卡文迪许实验室&#xff0c;又开始重回大众视野。在这个世界最牛实验室之一的实验室里&#xff0c;仅仅过去了一百多年&#xff0c;就不断涌现出一批又一批世界一流的科学家&#xff1a;把电与磁进行有机统一的麦克斯…

java接口那一节是哪的知识_Java中的接口知识汇总

Java中的接口知识汇总发布于 2020-4-29|复制链接本文给大家汇总介绍了在java中的接口知识&#xff0c;包括为什么要使用接口、什么是接口、抽象类和接口的区别、如何定义接口以及定义接口注意点&#xff0c;希望大家能够喜欢一.为什么要使用接口 假如有一个需求&#xff1a;要求…

用C语言实现解析简单配置文件的小工具

本文介绍作者写的一个小工具&#xff0c;简单的代码中包含了C语言对字符串的处理技巧&#xff0c;对文本文件的简单解析&#xff0c;二进制文件的数据复制的方法&#xff0c;以及格式化输出文本文件的示例。 工具的输入是如下内容的配置文件&#xff1a; [plain] view plaincop…

Delphi应用程序在命令行下带参数执行返回命令行提示的问题

在命令行模式&#xff08;CMD&#xff09;下执行时&#xff0c;想获得执行参数&#xff0c;用以下变量&#xff1a; ParamCount&#xff1a;参数个数 ParamStr&#xff1a;为参数数组 如果想在执行完一个操作后在命令行作出相应提示&#xff0c;就应该在相应位置放入…

开源的负载测试/压力测试工具 NBomber

负载测试和压力测试对于确保 web 应用的性能和可缩放性非常重要。尽管它们的某些测试是相同的&#xff0c;但目标不同。负载测试&#xff1a;测试应用是否可以在特定情况下处理指定的用户负载&#xff0c;同时仍满足响应目标。应用在正常状态下运行。压力测试&#xff1a;在极端…

人生失败的31种致命原因

人生失败的31种致命原因 一、不利的遗传背景。天生智力不足的人&#xff0c;是没什么办法可想的。唯一的补救办法就是“以勤补拙”。 二、缺乏明确的人生目标&#xff0c;凡是没有明确人生目标的人&#xff0c;便没有成功的希望&#xff0c;在我曾经分析过的100人中&#x…

男人都应该懂的一张图。。 | 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅美国人为了教民众如何辨别韩国人制作的韩国女性标准照左右军事成为一个有钱人的概率有多高&#xff1f;最新版男人都该懂的汽车品牌从属关系图twi:NOCO_1002肥胖和骨架没有必然联系800斤胖子的X射线照 科普君XueShu 雪树来猜一猜这是…

python 抓取的网页默认是bytes的,要转码

python 抓取的网页默认是bytes的,要转码.查看网页源码可以看到,我本次抓取的网页的编码方式是utf-8的.req urllib.request.Request(urlmyurl,headers myheaders) data urllib.request.urlopen(req).read() print(data.decode("UTF-8"))这样就正常显示中文了转载于…

FireFox与IE的兼容

1. JavaScript对象的引用 为了减少JavaScript对象的下载次数&#xff0c;Tasian只会在浏览器第一次请求应用时才会下载JavaScript文件。JavaScript对象只会驻留在Top级窗体&#xff0c;任何其它窗体需要引用到该JavaScript对象&#xff0c;只需要在引如下的方式进行引用就行&am…