テンプレートにバインドされているObout Gridの列をフィルタリングしようとしています。
バックグラウンド
列のは、特定のオブジェクトの本質的な状態 (名前、資産タグ、シリアル番号、追加情報など) を含むテーブルDataField
への外部キー IDです。ユーザーが特定の状態を変更した場合History
オブジェクト (例: 追加情報) の新しいレコードがHistory
テーブルに追加され、この新しいレコードが前述の外部キーによって参照されます。
列のデータバインディング中に、最新の履歴状態と直前の履歴状態を比較し、変更内容の英語の説明 (「このデバイスの追加情報フィールドが変更されました」など) を返して表示できるようにしています。各行のテキストとして。
問題
グリッド自体は、元のデータバインドの一部であったクライアント側のデータのみをフィルタリングするようです (この場合は、単に履歴レコードへの外部キー ID)。英語の説明に置き換えられているため、列ビューには実際には表示されませんが、この番号でフィルタリングすることはできます。
グリッド マークアップ
<cc1:Grid ID="grdHistory" runat="server" AutoGenerateColumns="False" DataSourceID="dsHistory" AllowFiltering="true">
<Columns>
<!-- other columns snipped -->
<cc1:Column DataField="DeviceHistoryID" HeaderText="Event description" Width="450" Wrap="true"
Index="3">
<TemplateSettings TemplateId="tplEventDescription" />
</cc1:Column>
</Columns>
<Templates>
<cc1:GridTemplate ID="tplEventDescription" runat="server">
<Template>
<%# FormatEventDescription(Container.DataItem) %>
</Template>
</cc1:GridTemplate>
</Templates>
</cc1:Grid>
FormatEventDescription(Hashtable Records)
フィルタリングしたいオブジェクトの状態への変更の英語版を返す関数です。
質問
列の英語の説明でフィルター処理する方法はありますか? この時点で、洞察 (設計上の欠陥など) を歓迎します。私は彼らのすべてのドキュメントをふるいにかけてみましたが、この問題に関してサポートに連絡しようとしましたが、まだ応答を受け取っていません.