创建一个带有Lookup字段的List
用程序去创建一个List是非常简单的事情,但是如何去创建一个带有Lookup类型的字段呢? 这就是本篇文章要尝试去做的事情。
前期准备工作: 在站点上有一个List,叫UserInformation,里面有一个字段Username。随便往里面添加几条记录,等会我们会用到。
下面就开始写代码了。
[第1步] 打开VS2008,创建一控制台应用程序,添加对“Microsoft.SharePoint.dll”的引用。
[第2步] 添加代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace CreateListWithLookupColumn
{
class Program
{
static void Main(string[] args)
{
string siteURL = "Http://mysite"; //此处换成实际的站点地址
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.AllWebs[0])
{
//添加一个名叫TestLookUp的List.
Guid newListGuid = web.Lists.Add("TestLookUp", "用来测试Lookup字段.", SPListTemplateType.GenericList);
SPList newList = web.Lists[newListGuid]; //取得刚才添加的List.
//给List添加一个普通文本类型的字段.
SPField fldLanguage = (SPFieldText)newList.Fields.CreateNewField(SPFieldType.Text.ToString(), "Language");
fldLanguage.Description = "添加一个普通的测试文本类型的字段,名字叫Language";
fldLanguage.Required = true; //在新建项目时,此字段是否是必填的.
newList.Fields.Add(fldLanguage);
//添加一个Lookup类型的字段.
string fieldName = "MyLookupColumn"; //要添加的测试字段
SPList lookupList = web.Lists["UserInformation"]; //要在此UserInformation中取值
Guid lookupGuid = new Guid(lookupList.ID.ToString());
//先添加一Lookup类型字段,然后再指定其要在哪个List的哪个Column中取值.
newList.Fields.AddLookup(fieldName, lookupGuid, false);
SPFieldLookup splookup = newList.Fields[fieldName] as SPFieldLookup;
splookup.LookupField = lookupList.Fields["Username"].InternalName;
splookup.Update();
newList.Update();
}
}
Console.WriteLine("Ok");
Console.ReadKey();
}
}
}
其实代码没有什么好讲的,注释也都加上了,基本一眼就能看明白。倒是有一个地方需要注意:
splookup.LookupField = lookupList.Fields["Username"].InternalName;
这里面要用InternalName,而不是lookupList.Fields["Username"]。如果只是用lookupList.Fields["Username"],有时会取不到值。
[第3步] 程序执行完之后,就可以到网站中查看结果了。
当添加一个新记录时,就会看到LOOKUP字段已经生成了。
总结:此代码美中不足的,没有给List创建一个新的View,新添加的字段不能立刻显示在页面上。
源码地址:http://files.cnblogs.com/hearticy/CreateListWithLookupColumn.rar
转载于:https://www.cnblogs.com/hearticy/archive/2009/05/24/1488218.html
创建一个带有Lookup字段的List相关推荐
- Sharepoint学习笔记---SPList--创建一个带有Lookup字段的List
这里我们用代码创建一个带有Lookup字段(名为: LookupStaffName)的List (名为:TestSale),它的Lookup字段从另一个名为SaleStaff的List中获取. 因此, ...
- 自定制vs插件--LearnVSXNow!-#4 创建一个带有工具窗的Package
上一次我们实现了一个带有命令(Command)的package,这一次让我们更进一步:创建一个被称为工具窗(Tool Window)的界面.那么,什么是工具窗呢?让我们想象一下:解决方案浏览器(Sol ...
- 创建一个带有Event Receiver的List Definition
文章中介绍了详细的步骤, 还有一个视频可供下载. 文章地址: Building List Definitions with Event Receiver in Windows SharePoint S ...
- SQL Server创建一个带有输入和输出参数的存储过程并调用
--创建一个表Borrow的的存储过程,输入参数是Borrow表的B_ID,输出参数Books表的B_Name create proc P_Test1 @B_ID char(5), --输入参数 @B ...
- Carla学习(六) 创建一个带有各种传感器的车辆
1 在catkin_ws工作空间中,创建一个程序包,这里命名sensor_vehicle.这里程序包不需要依赖,因为之后直接拷贝官网给的创建车辆的程序包. ~$ cd catkin_ws/src/ro ...
- lob移表空间 oracle_移动一个带有lob字段的表到另外一个表空间
很多人都知道在建立含有lob字段的表时,Oracle会自动为lob字段建立两个单独的segment,一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中.但是当我们用alter ...
- java怎么添加到按钮组_如何在Java中创建一个带有连接按钮的ButtonGroup?
我目前正在尝试创建一组切换按钮,这些按钮类似于Eclipse的格式化程序首选项中使用的按钮: 目前我已通过以下方式尝试此操作: public class Exercise extends JFrame ...
- 创建一个触发器新增字段的时候设置某个字段的值
drop trigger if EXISTS tr_userinfo_enterdate; CREATE trigger tr_userinfo_enterdate before insert on ...
- Sharepoint学习笔记—ECMAScript对象模型系列-- 7、获取和修改List的Lookup字段
在前面我们提到了如何使用ECMAscript对象模型来操作普通的List Items,但如果我们操作的List包含有Lookup字段,那么我们又该怎么做呢? 首先参考此文搭建我们本文的测试环境 Sha ...
最新文章
- rabbitmq python 消费者_菜鸟世界 -RabbitMQ---消费者示例
- 使用内存映射文件来提高你程序的性能
- 一段话系列-QPS、TPS、PV是很么如何计算
- 修改数据库mysql字符编码为UTF8
- 我在美国与“狼”共舞的日子(7)
- 转:看问题的5个层次
- TCP协议的三次握手与四次挥手
- mysql 半同步_mysql 主从同步 与 半同步
- mongodb ensureIndex parameter
- 软件测试程序员每天的工作都是做什么的?有哪些是必须要做的?
- 使用coin3d画个小模型
- cdrx4自动排版步骤_coreldraw x4怎么排版 coreldraw书册杂志的排版方法 - 电脑常识 - 服务器之家...
- python矩阵求每个元素平方矩阵
- 关于汽车人转型,“正能量”故事看腻了,今天来一篇“负能量”的
- Z39.50 图书信息检索
- VAF:Variant Allel Frequency简介
- scratch3.0键盘无法输入文字或修改指令中的数字的快速解决办法
- 快充伤电池?我来帮何同学做个假设检验
- 计算机共享的无线手机连上但上不去网的解决方法
- 咏春拳谱之小念头(套路详解)
热门文章
- UnityShader26:运动模糊
- HDU 6183 2017广西邀请赛:Color it(线段树)
- 2017 Multi-University Training Contest - Team 4:1003. Counting Divisors(积性函数)
- cube云原生机器学习平台-架构(四)
- jQuery Mobile中固定工具栏header、footer的data-*选项
- 深度学习:文本检测数据集整理
- html状态码206,HTTP状态码206
- PAT-013 L1-013. 计算阶乘和
- Web Deploy 发布网站错误 检查授权和委派设置
- 左移和右移运算符的重载问题(里面的绝对盲点)在做了一遍,还是出错了