2009-01-07 92 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列)中的某些列,這也可以幫助您(尤其是隱藏數據綁定列)。