這里我們用代碼創建一個帶有Lookup字段(名為: LookupStaffName)的List (名為:TestSale),它的Lookup字段從另一個名為SaleStaff的List中獲取。
因此,我們首先在我們的測試網站上手工創建一個List,命名為SaleStaff,並輸入測試數據如下
然后使用如下代碼去創建TestSale這個List
string siteURL =
"
http://MyTestSite:1200/
";
//
此處換成你自己的站點地址
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.AllWebs[ 0])
{
// 先在我們的測試站點添加一個名叫TestSaleStaff的List.
Guid newListGuid = web.Lists.Add( " TestSale ", " Used for test lookup field. ", SPListTemplateType.GenericList);
SPList newList = web.Lists[newListGuid]; // 取得剛才添加的List.
// 給TestSaleStaff這個List添加一個普通文本類型的字段.
SPField fldProductName = (SPFieldText)newList.Fields.CreateNewField(SPFieldType.Text.ToString(), " ProductName ");
fldProductName.Description = " Add a common test text type field named ProductName ";
fldProductName.Required = true; // 在新建項目時,此字段是否是必填的.
newList.Fields.Add(fldProductName);
// 給TestSaleStaff這個List添加一個Lookup類型的字段.
string fieldName = " LookupStaffName "; // 設置fieldName參數,即新增的Lookup類型字段的名字
SPList lookupList = web.Lists[ " SaleStaff "]; // 設置這個Lookup類型字段要從哪個List中去取值
Guid lookupGuid = new Guid(lookupList.ID.ToString()); // 取得這個Lookup數據源List的Guid
newList.Fields.AddLookup(fieldName, lookupGuid, false); // 把上面取得的參數引入到AddLookup方法中,從而創建一個Lookup字段
SPFieldLookup splookup = newList.Fields[fieldName] as SPFieldLookup; // 綁定數據List到Lookup字段
splookup.LookupField = lookupList.Fields[ " Title "].InternalName;
splookup.Update();
newList.Update();
}
}
// 此處可以顯示操作結果信息
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.AllWebs[ 0])
{
// 先在我們的測試站點添加一個名叫TestSaleStaff的List.
Guid newListGuid = web.Lists.Add( " TestSale ", " Used for test lookup field. ", SPListTemplateType.GenericList);
SPList newList = web.Lists[newListGuid]; // 取得剛才添加的List.
// 給TestSaleStaff這個List添加一個普通文本類型的字段.
SPField fldProductName = (SPFieldText)newList.Fields.CreateNewField(SPFieldType.Text.ToString(), " ProductName ");
fldProductName.Description = " Add a common test text type field named ProductName ";
fldProductName.Required = true; // 在新建項目時,此字段是否是必填的.
newList.Fields.Add(fldProductName);
// 給TestSaleStaff這個List添加一個Lookup類型的字段.
string fieldName = " LookupStaffName "; // 設置fieldName參數,即新增的Lookup類型字段的名字
SPList lookupList = web.Lists[ " SaleStaff "]; // 設置這個Lookup類型字段要從哪個List中去取值
Guid lookupGuid = new Guid(lookupList.ID.ToString()); // 取得這個Lookup數據源List的Guid
newList.Fields.AddLookup(fieldName, lookupGuid, false); // 把上面取得的參數引入到AddLookup方法中,從而創建一個Lookup字段
SPFieldLookup splookup = newList.Fields[fieldName] as SPFieldLookup; // 綁定數據List到Lookup字段
splookup.LookupField = lookupList.Fields[ " Title "].InternalName;
splookup.Update();
newList.Update();
}
}
// 此處可以顯示操作結果信息
運行代碼后,在網站中可以看到這個新建的List,修改它的View,使我們新建的Field可見,並試着輸入新記錄到這個List中,如下: