2013-10-23 22 views
0

我一直在尋找其他職位,試圖解決這個問題,但我真的很新的InfoPath編碼。我有一個代碼可以讓我使用Infopath來在SharePoint列表中添加項目。我不斷收到「名稱」e「在當前上下文中不存在」的錯誤。請幫忙!!在此上下文中不存在名稱「e」。

public void InternalStartup() 
    { 
     ((ButtonEvent)EventManager.ControlEvents["UpdateList"]).Clicked += new ClickedEventHandler(UpdateList_Clicked("Update", e.Source.CreateNavigator())); 
    } 
    public void UpdateList_Clicked(string strOperation, XPathNavigator e) 
    { 
     //Create a new instance of our "Lists" web service 
     ServerName.Lists myList = new ServerName.Lists(); 
     //Pass the logged on users credentials to the web service 
     myList.Credentials = System.Net.CredentialCache.DefaultCredentials; 
     //Create a DataSource object for our list data source 
     DataSource dsContacts = this.DataSources["Updated Headcount"]; 
     //Create a NamespaceManager object so we can use the various namespaces on our XPATH expressions 
     XmlNamespaceManager ns = this.NamespaceManager; 
     //Create XPathNavigator objects for each field from our list 
     XPathNavigator xnID = e.SelectSingleNode("@ID", ns); 
     XPathNavigator xnTitle = e.SelectSingleNode("@Title", ns); 
     XPathNavigator xnLastName = e.SelectSingleNode("@LastName ", ns); 
     XPathNavigator xnFirstName = e.SelectSingleNode("@FirstName", ns); 
     XPathNavigator xnFranchise = e.SelectSingleNode("@Franchise", ns); 
     XPathNavigator xnLocation = e.SelectSingleNode("@Location", ns); 
     XPathNavigator xnPillar = e.SelectSingleNode("@Pillar", ns); 
     XPathNavigator xnLeader = e.SelectSingleNode("@Leader", ns); 
     XPathNavigator xnActivity = e.SelectSingleNode("@Activity", ns); 
     XPathNavigator xnCategory = e.SelectSingleNode("@Category", ns); 
     XPathNavigator xnPosition = e.SelectSingleNode("@Position", ns); 
     XPathNavigator xnDeptNumber = e.SelectSingleNode("@DeptNumber", ns); 
     XPathNavigator xnSupervisor = e.SelectSingleNode("@Supervisor", ns); 
     XPathNavigator xnEmployeeType = e.SelectSingleNode("@EmployeeType", ns); 
     XPathNavigator xnFTE = e.SelectSingleNode("@FTE", ns); 
     XPathNavigator xnNotes = e.SelectSingleNode("@Notes", ns); 
     //Create a new XmlDocument to use for specifying the Update CAML query 
     XmlDocument doc = new XmlDocument(); 
     //Create the needed update element 
     System.Xml.XmlElement updates = doc.CreateElement("Batch"); 
     //Create the CAML query passing in the value of each of our fields from the form 
     if (strOperation == "Delete") 
     { 
      updates.InnerXml = string.Format(@"<Method ID='1' Cmd='Delete'>" + 
      "<Field Name='ID'>" + xnID.Value + "</Field>" + "</Method>"); 
     } 
     else 
     { 
      //Create the CAML query passing in the value of each of our fields from the form 
      updates.InnerXml = string.Format(@"<Method ID='1' Cmd='Update'>" + 
      "<Field Name='ID'>" + xnID.Value + "</Field>" + 
      "<Field Name='Title'>" + xnTitle.Value + "</Field>" + 
      "<Field Name='LastName'>" + xnLastName.Value + "</Field>" + 
      "<Field Name='FirstName'>" + xnFirstName.Value + "</Field>" + 
      "<Field Name='Franchise'>" + xnFranchise.Value + "</Field>" + 
      "<Field Name='Location'>" + xnLocation.Value + "</Field>" + 
      "<Field Name='Pillar'>" + xnPillar.Value + "</Field>" + 
      "<Field Name='Leader'>" + xnLeader.Value + "</Field>" + 
      "<Field Name='Activity>" + xnActivity.Value + "</Field>" + 
      "<Field Name='Category'>" + xnCategory.Value + "</Field>" + 
      "<Field Name='Position>" + xnPosition.Value + "</Field>" + 
      "<Field Name='DeptNumber'>" + xnDeptNumber.Value + "</Field>" + 
      "<Field Name='Supervisor'>" + xnSupervisor.Value + "</Field>" + 
      "<Field Name='EmployeeType'>" + xnEmployeeType.Value + "</Field>" + 
      "<Field Name='FTE'>" + xnFTE.Value + "</Field>" + 
      "<Field Name='Notes'>" + xnNotes.Value + "</Field>" + "</Method>"); 
     } 
     //Update the list 
     XPathNavigator xnListGUID = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:ListName", ns); 
     XmlNode node = myList.UpdateListItems(xnListGUID.Value, updates); 
     //Requery the data source to reflect the updates 
     dsContacts.QueryConnection.Execute();  
    } 

} 

}

+0

是錯誤的InternalStartup方法?它看起來沒有定義 – Jonesopolis

回答

0

假設Clickedvoid (string, XPathNavigator)簽名的活動,你應該添加事件處理程序是這樣的:

public void InternalStartup() 
{ 
    ((ButtonEvent)EventManager.ControlEvents["UpdateList"]).Clicked += UpdateList_Clicked; 
} 
0

您的意思是

public void InternalStartup() 
{ 
    ((ButtonEvent)EventManager.ControlEvents["UpdateList"]).Clicked += 
     (s, e) => UpdateList_Clicked("Update", e.Source.CreateNavigator()); 
} 
相關問題