ASP.NET Datagrid - 隐藏特定的行/列

时间:2009-01-07 20:44:30

标签: asp.net datagrid

我正在使用具有多列数据的Datagrid(称为myDG),其中一列是绑定到数据源的DateTime。其值取决于完成作业的“作业”对象并指定日期时间值。由于这通常需要一分钟,因此该值在开始时未分配。

该列的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

我想要隐藏它并确定最好的方法是用空白掩盖特定的行和列,或暂时覆盖该值。我在执行此操作时遇到问题并找到了访问该特定行和列的方法。

它是数据网格的[3]列,始终位于第一行(因为新行添加在顶部)。

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

-thanks提前!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

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