0

外部リスト (Linq to SQL を使用して Visual Studio で作成された BCS モデル) と ReadList メソッドのフィルターがあります。外部リストとフィルターが機能します。

リストビュー ページで QueryString を介してフィルタを動的に設定できるようにしたいと考えています。SharePoint Designer を使用して、リストビューを編集し、QueryString パラメーターを XsltListView に追加し、パラメーターを使用して Finder メソッドを構成します (例: http://arsalkhatri.wordpress.com/2012/01/07/external-list-with- bcs-search-filters-finders/ )。

QueryString を介してフィルターを渡すことができるようになりました。これは機能し、フィルターに従って項目がリストに表示されるようになりました。ただし、このソリューションには、各列見出しの組み込みフィルターが機能しなくなるという副作用があります。「この列の種類はフィルター処理できません」というエラーが表示されます。Finder メソッドでフィルターを削除するとすぐに、組み込みのフィルターが再び機能し始めます。

XsltListView の Finder メソッドのフィルターに QueryString 変数を渡すことを組み合わせて、組み込み機能を保持して列見出しでフィルター処理することは可能ですか?

どんなアイデアでも大歓迎です。

4

1 に答える 1

0

私は実際にこれに対する解決策を見つけました。列フィルター機能がトークンを解析せずに追加しているようです。したがって、「{filtername}」などのように定義されたフィルターがある場合、このトークン文字列は、波括弧を含めてフィルター値として文字通り BCS に送信されます。そのため、BCS コードをチェックインしてこれに対するアクションを実行する必要があります (フィルターが渡されたときにすべての項目を含める = "{filtername}" )、または SQL の場合は、このような余分な句を追加するだけです (生成されたデフォルトと比較して最後の OR を追加しました) SQL): WHERE ((@filtername IS NULL) OR ((@filtername IS NULL AND [] IS NULL) OR [] LIKE @CprNr) OR (@CprNr LIKE '%{filtername}%' ) )

于 2013-09-02T07:58:56.933 に答える