2009-02-26 7 views
1

テンプレートにバインドされたObout Gridのカラムをフィルタリングしようとしています。列のDataFieldは、単にどのようなものが含まれHistoryテーブルへの外部キーIDでテンプレートによって入力されたテキストのカラムをフィルタリングするObputグリッド

背景

は、本質的に、そのような名前、資産タグ、シリアル番号、追加情報として、(特定のオブジェクトの状態。 (例えば、追加情報)を変更する場合、新しいレコードが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)私は上のフィルタしたいオブジェクトの状態への変化の英語バージョンを返す関数です。

質問

は、カラム内の英語の記述によってフィルタリングする方法はありますか?この時点で、あらゆる洞察(設計上の欠陥など)は歓迎されます。私は、すべてのドキュメントを見抜いてみることを試みただけでなく、この問題に関して彼らのサポートに連絡しようとしましたが、まだ応答を受けていません。

答えて

0

私はOboutのサードパーティコントロールについてはあまりよく分かりませんが、.net GridViewコントロールからサブクラス化されているようです。だから、もう一度質問するかもしれませんが、代わりに、特定のコントロールを使用している人が多いため、Oboutという単語がある場所でgridviewを使用してください。

グリッドのイベントを短時間スキャンした後に、RowDataBoundイベントを使用して必要な変換を実行しようとすると思います。

datasourceSelectedイベントを使用してデータを変換することもできます。

データを最終的に判読可能な状態に早期に変換できる場合は、発生したイベントの連鎖の早い段階でそのデータをフィルタリングすることができます。

+0

この質問は私がページ全体を再編集してからは関係しなくなりましたが、他に誰も試したことがないので、賞金をあげます。 –

関連する問題