0

複数のデータ列 (myDG と呼びます) を持つ Datagrid を使用していますが、これらの列の 1 つはデータソースにバインドされた DateTime です。その値は、ジョブを完了して日時値を割り当てる「ジョブ」オブジェクトに依存します。これには通常 1 分ほどかかるため、最初は値が割り当てられていません。

列の asp.net 定義は次のとおりです。

<asp:boundcolumn 
  DataField="CompletedDate" 
  HeaderText="Date Completed" 
  DataFormatString="{0:dd-MMM-yyyy <br> hh:mm:ss tt}" />

そのため、「ジョブ」が完了して時間を設定すると、機能は正常に機能します。ただし、その前に、行が表示されている間、次のように表示されます

0001 年 1 月 1 日 12:00:00 午前

これを非表示にしたいのですが、その特定の行と列を空白でマスクするか、値を一時的に上書きするのが最善の方法であると判断しました。これを行うと、その特定の行と列にアクセスする方法を見つけるのに問題があります。

これはデータグリッドの [3] 列であり、常に最初の行にあります (新しい行が一番上に追加されるため)。

このセルに直接アクセスして、その内容を一時的に「隠す」か、マスクする方法はありますか? 列にこれと等しい値を持つすべての行を空白にする方法があれば理想的ですが、特定のセルを操作する方法も同様に機能します。

-前もって感謝します!

4

3 に答える 3

2

おそらく OnItemDataBound をフックし、値を確認し、必要に応じて置換/再フォーマットします。

于 2009-01-07T20:48:15.803 に答える
0

私は過去に同様のことをしましたが、これが私がしたことです。

まったく表示されない列にデータをバインドします。表示するデータの表示列を追加します。グリッドにデータを入力するときに、レコードをループし、値が 01-Jan-0001 12:00:00 AM ではない場合は、表示される行をその値に設定します。01-Jan-0001 12:00:00 AM に等しい場合は、表示されている行の値を空の文字列または任意の値に設定します。(テキストの色を背景色と同じに設定して、ユーザーに表示されないようにすることもできます)

于 2009-01-07T20:49:48.497 に答える