Hello!
I bumped into problem then i tried to read data of the form...
During load event i fill repeating group that is:
<my:gSecurityGroup>
<my:gSecurityMember>
<my:sAMAccountName>Evgenii.Goncharov</my:sAMAccountName>
<my:displayName>Evgenii Goncharov</my:displayName>
<my:mail>[email protected]</my:mail>
</my:gSecurityMember>
<my:gSecurityMember>
<my:sAMAccountName>Leny.Kravits</my:sAMAccountName>
<my:displayName>Leny Kravits</my:displayName>
<my:mail>[email protected]</my:mail>
</my:gSecurityMember><my:gSecurityMember>
<my:sAMAccountName>Kairat.Sarsebayev</my:sAMAccountName>
<my:displayName>Kairat Sarsebayev</my:displayName>
<my:mail>[email protected]</my:mail>
</my:gSecurityMember><my:gSecurityMember>
<my:sAMAccountName>Evgenii.Goncharov</my:sAMAccountName>
<my:displayName>Evgenii Goncharov</my:displayName>
<my:mail>[email protected]</my:mail>
</my:gSecurityMember></my:gSecurityGroup>
The part of code that does it is below (de - is a result of AD DirectorySearcher.FindOne() with specified filter):
XPathNavigator SecGroup = FormNavigator.SelectSingleNode("/my:mySpace/my:gSecurityGroup", NamespaceManager);
XPathNavigator NewNode;
foreach (object obj in de.Properties["Member"])
{
de1.Path = "LDAP://" + obj.ToString();
NewNode = SecGroup.SelectSingleNode("/my:mySpace/my:gSecurityGroup/my:gSecurityMember", NamespaceManager).Clone();
NewNode.SelectSingleNode("//my:gSecurityMember/my:sAMAccountName", NamespaceManager).SetValue(de1.Properties["sAMAccountName"].Value.ToString());
NewNode.SelectSingleNode("//my:gSecurityMember/my:displayName", NamespaceManager).SetValue(de1.Properties["displayName"].Value.ToString());
NewNode.SelectSingleNode("//my:gSecurityMember/my:mail", NamespaceManager).SetValue(de1.Properties["mail"].Value.ToString());
SecGroup.AppendChild(NewNode);
}
Then other events occur i need to read data from it by field and, for instance, to compare it with variables.
How to access them.
I try to perfom it next way:
public void cbExecutor_Changed(object sender, XmlEventArgs e)
{
XPathNavigator FN = this.MainDataSource.CreateNavigator();
XPathNodeIterator SecIter = SecGroup.Select("/my:mySpace/my:gSecurityGroup/my:gSecurityMember", NamespaceManager);
string sExecutor = FN.SelectSingleNode("/my:mySpace/my:grApprovers/my:grSignSecurityManager/my:grSecurityManager/my:cbExecutor", NamespaceManager).Value;
while (SecIter.MoveNext())
{
if (SecIter.Current.Value.Contains(sExecutor))
{
FN.SelectSingleNode("/my:mySpace/my:grApprovers/my:grSignSecurityManager/my:grSecurityManager/my:fExecutorEmail", NamespaceManager).SetValue(SecIter.Current.SelectSingleNode("//my:mail", NamespaceManager).Value);
}
}
Then i was debugging the code above i noticed that SecIter.Current.Value was changing during iteration but SecIter.Current.SelectSingleNode("//my:mail", NamespaceManager).Value was always the same and correlated to the first entry.
I also tried to point to my:mail tag like this
SecIter.Current.SelectSingleNode("//my:gSecurityMember/my:mail", NamespaceManager).Value
but without any value.
Could somebody point me where i am wrong.
Thank You.