1; #ABC形式のルックアップフィールド値を表示する情報パスカスケードドロップダウン。 値をIDなしのABCとしてフォーマットする必要があります

c# infopath sharepoint xml
1; #ABC形式のルックアップフィールド値を表示する情報パスカスケードドロップダウン。 値をIDなしのABCとしてフォーマットする必要があります

ドロップダウンボックス(カスケード接続)を備えたブラウザー対応の情報パスフォームがあり、データはxmlドキュメントから取得されます。 データは次の形式です(値はルックアップフィールドから取得されます)。

item_number; #item_value

ドロップダウンボックスにitem_valueのみを表示する方法。 ドロップダウンボックスにルールを適用できますか、またはこれを達成するためのコードを介した方法はありますか?

助けてくれてありがとう!

ここで同様の投稿を見つけましたhttp://www.infopathdev.com/forums/p/9964/35310.aspx [カスケードドロップダウンルックアップフィールド]が適切な解決策はありません

私は解決策を見つけましたが、それを機能させるのに問題があります。ドロップダウンのデータを取得するためにファイルクエリ接続を使用しています、接続を実行し、結果をXML文書に入力します コンテンツをxmldocumentに書き込むのに問題があります。質問はこちらをご覧ください-

これが解決すれば、すべてがうまくいくと思います。

  0  0


ベストアンサー

XPath Expressionを使用してみましたか?

substing-after(YourFieldName, '#')

1


追加の計算列を使用して、明確なデータを表示することができます。

0


最後に解決策を見つけました:

 private void formatValue(string dataSourceName, string xPathSTring)
    {
        FileQueryConnection con = (FileQueryConnection)DataConnections[dataSourceName];
        con.Execute();
        DataSource ds = this.DataSources[dataSourceName];
        XPathNavigator nav = ds.CreateNavigator();
        XPathNavigator root = MainDataSource.CreateNavigator();
        XPathNodeIterator iterator = nav.Select(xPathSTring, NamespaceManager);
        while (iterator.MoveNext())
        {

            string value = iterator.Current.Value;
            int startFrom = value.IndexOf('#') + 1;
            iterator.Current.SetValue(value.Substring(startFrom, (value.Length - startFrom)));
        }
    }

0


タイトルとURLをコピーしました