有意思的查阅项

在项目中,经常会涉及列表或者文档库之间的相互引用,而这个时候我们用的更多的就是查阅项(lookup),以前没有去关注取值或者赋值的问题,今天正好碰到一个Case,就顺道总结一下。我们知道链接和图片的字段我们通过SPLinkFieldValue取值,那么查阅项通过什么来取值呢?答案是:SPFieldLookupValueCollection或者SPFieldLookupValue,为什么会有两种类型呢?起源是在添加查阅项字段时,是否选择了“允许多值”。一旦允许多值,就必须的通过SPFieldLookupValueCollection来做,以下是我整理的代码,仅供记录:

   1:            SPFieldLookup fieldLookup =(SPFieldLookup)list.Fields[_DisplayName];
   2:              if (fieldLookup.GetFieldValue(item[_ColName].ToString()).GetType().Name == "SPFieldLookupValueCollection")
   3:              {
   4:                  SPFieldLookupValueCollection projects =
   5:                      (SPFieldLookupValueCollection)fieldLookup.GetFieldValue(item[_ColName].ToString());
   6:   
   7:                  foreach (SPFieldLookupValue lookupValue in projects)
   8:                  {
   9:                       //lookupValue.LookupValue;
  10:                       //lookupValue.LookupId.ToString();
  11:                  }
  12:              }
  13:              else
  14:              {
  15:                  SPFieldLookupValue projects =
  16:                      (SPFieldLookupValue)fieldLookup.GetFieldValue(item[_ColName].ToString());
  17:   
  18:                  //projects.LookupValue;
  19:                  //projects.LookupId.ToString();
  20:              }    
posted @ 2010-06-09 18:06  范文轩  阅读(539)  评论(0编辑  收藏  举报