2012-11-29 62 views
0

我想通過Web服務填充列表中的查找列。 我從一個asp.net web表單獲取我的數據,並使用Web服務方法UpdateListItems和發送批處理XML。 但是,除非用戶輸入查找使用的確切數據,否則Web服務將返回錯誤。通過Web服務填充共享點查找列

是否有反正我可以給網頁形式的用戶,類似的查找功能,以便傳遞的數據將是相同的?

我使用的是共享點2007 共享點中查找列的數據源是活動目錄。 _x0028_HR_x0029__x0020_Partner是查找列,輸入用戶登錄名將查找他們的全名/您可以從列表中選擇。

非常感謝您的幫助。

  ClasService.Lists NewStarterList = new ClasService.Lists(); 
     NewStarterList.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SPUserName"].ToString(), 
      ConfigurationManager.AppSettings["SPPassword"].ToString(), ConfigurationManager.AppSettings["SPDomain"].ToString()); 

     NewStarterList.Url = ConfigurationManager.AppSettings["SPUrl"].ToString() + ConfigurationManager.AppSettings["SPServicePath"].ToString(); 

     try 
     { 
      string strBatch = "<Method ID='1' Cmd='Update'>" + 
       "<Field Name='ID'>" + clasStarter.ClasID + "</Field>" + 
       "<Field Name='Title'>" + clasStarter.Name + "</Field>" + 
       "<Field Name='_x0028_HR_x0029__x0020_Job_x0020'>" + clasStarter.JobTitle + "</Field>" + 
       "<Field Name='Entity'>" + clasStarter.Entity + "</Field>" + 
       "<Field Name='Practice_x0020_Groups'>" + clasStarter.PracticeGroup + "</Field>" + 
       "<Field Name='Dept'>" + clasStarter.Department + "</Field>" + 
       "<Field Name='Physical_x0020_Desk_x0020_Locati'>" + clasStarter.Location + ", " + clasStarter.LocationInBuilding + ", " + clasStarter.Department + "</Field>" + 
       "<Field Name='_x0028_HR_x0029__x0020_Line_x002'>" + clasStarter.LineManager + "</Field>" + 
       "<Field Name='_x0028_HR_x0029__x0020_Buddy'>" + clasStarter.Buddy + "</Field>" + 
       "<Field Name='_x0028_HR_x0029__x0020_Partner'>" + clasStarter.Partner + "</Field>" +//is a look up 

       "</Method>"; 

      XmlDocument xmlDoc = new System.Xml.XmlDocument(); 

      System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch"); 

      elBatch.SetAttribute("OnError", "Continue"); 
      elBatch.SetAttribute("ListVersion", "1"); 
      elBatch.SetAttribute("ViewName", ConfigurationManager.AppSettings["SPViewID"].ToString()); 

      elBatch.InnerXml = strBatch; 

      XmlNode ndReturn = NewStarterList.UpdateListItems(ConfigurationManager.AppSettings["SPListID"].ToString(), elBatch); 

     } 
     catch (Exception exp) 
     { 
      throw new Exception("NewStarterForm - Clas Update failed ", exp); 
     } 

回答

0

我還沒有想出一個完整的解決方案我的問題,但我想出了一部分。

共享點查找列有兩部分,一個是id和一個值。如果你不知道這個值,那麼你可以只使用-1;#作爲替補的ID

這樣的一個例子是

"<Field Name='Partner'>-1;#" + partnerLogOnId + "</Field>" 

我可能會使用一個列表,它允許用戶我的表單選擇人員,並將合作伙伴LOGOnId傳遞給我的Web服務方法。