2009-01-07 91 views
0

我正在使用一个Datagrid与几列数据(称为myDG),其中一列是一个绑定到数据源的DateTime。其值取决于完成作业并分配日期时间值的“作业”对象。由于这通常需要一分钟的时间,因此该值在开始时未被分配。ASP.NET Datagrid - 隐藏一个特定的行/列

列的asp.net的定义是:

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

因此,当“工作”已经完成了功能工作正常,它设置的时间。但在此之前,在显示的行,它显示为

01-JAN-0001 12:00:00 AM

我想隐藏此并确定最好的办法是掩盖该特定的行和列带有空白,或暂时覆盖该值。我遇到问题并找到访问特定行和列的方法。

它是datagrid的[3]列,并且总是在第一行(因为新行添加在顶部)。

有没有办法直接访问这个单元格并暂时'隐藏'它的内容或掩盖它们?理想情况下,如果有一种方法可以清除所有在其列中的值等于此值的行,但操作特定单元格的方法也可以。

- 感谢提前!

回答

0

我在过去做过类似的事情,这就是我所做的。

将数据绑定到根本不可见的列。为您希望显示的数据添加一个可见列。在填充网格时,循环查看记录,并查看任何非01-Jan-0001 12:00:00 AM的值,将可见行设置为该值。如果它等于01-Jan-0001 12:00:00 AM,则将可见行的值设置为空字符串或您选择的某个值。 (你甚至可以将文本颜色设置为与背景颜色相同,这样就不会出现给用户)

2

我可能会挂钩OnItemDataBound,检查值,并根据需要替换/重新格式化。

2

我问了一个类似的问题,关于隐藏列here

我不得不使用RowCreated事件来隐藏用户(PK列)中的某些列,这也可以帮助您(尤其是隐藏数据绑定列)。