0

enter image description hereInfoPath는 : 나는 네 수동 값 InfoPath는에서 다중 선택 상자를

뒤에 코드에서 "다중 선택 상자"값을 확인합니다. 이제 어떻게 C# 코드 뒤에서 두 옵션을 확인할 수 있습니까 ("옵션 1 및 옵션 3"이라고 말함). 순간

나는

XPathNavigator elemYourTextBox = this.MainDataSource.CreateNavigator().SelectSingleNode("//my:MSList", this.NamespaceManager); 
elemYourTextBox.SetValue("Option One"); 
elemYourTextBox.SetValue("Option Two"); 

Option Two이 선택됩니다, 뒤에 말함으로써 코드에서이 두 가지를 추가하고있는 경우.

답변

0

InfoPath를 사용한 이후로 꽤 오래되었습니다. 내가 믿는 이유는 하나의 가치를 두 번 설정하고 있다는 것입니다. 한 번 Option One으로 다음 Option Two. infopath가 값을 텍스트 필드에 삽입하여 기본 값을 선택하는 방법을 복제해야합니다. 한가지 고려해야 할 점은 Infopath가 여러 값으로 작동하는 방식과 같이 원하는 방식으로 작동하도록 값 모음이 필요할 수도 있습니다.

Pre-select items in a Multiple-Selection List Box in InfoPath 2010

+0

응답 해 주셔서 감사합니다. XML 속성을 변경하여 해결책을 얻었습니다. –

0

다중 선택 목록 상자가 InfoPath는의 반복 노드에 바인딩 도움이 문서를 발견했다. 따라서 코드에서 MSList 노드를 추가 한 다음 값을 설정해야합니다. 나는 당신이 그것의 복사본을 만들기 위해 노드를 추가 할 수 있다고 생각한다. 여기에 개념을 보여주는 대략적인 코드 샘플이 있습니다. 이것은 양식에있는 field1 (다중 선택이 연결된)의 한 인스턴스에 의존하지만 적어도 주요 아이디어를 얻으실 수 있습니다.

 XPathNavigator option = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1", NamespaceManager); 
     this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1", NamespaceManager).AppendChild(option); 
     this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1[1]", NamespaceManager).SetValue("Option 1"); 
     this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1[2]", NamespaceManager).SetValue("Option 2"); 
+0

나는 이것을 시도했지만 public void DeleteNil (XPathNavigator 노드)에서 null 포인터 예외가 발생했습니다 { if (node.MoveToAttribute ("nil", "http://www.w3.org/2001/XMLSchema-instance")) node.DeleteSelf(); }이 방법 –

+0

그래서 다른 메소드를 호출하여 nil 속성을 삭제하면 오류가 발생합니까? 샘플에서는 텍스트 상자를 설정하고 있습니다. 문자열 필드에는 nil 속성이 없습니다. – hilary