質問

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

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

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

したがって、&quot;ジョブ&quot;完了し、時間を設定します。しかし、その前に、行が表示されている間、次のように表示されます

01-Jan-0001 午前12:00:00

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

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

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

-事前に感謝します!

役に立ちましたか?

解決

過去にも同様のことをしてきましたが、ここに私がやったことを示します。

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

他のヒント

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

列の非表示について同様の質問をしました

scroll top