ASP.NET Datagrid - скрытие определенной строки / столбца
Вопрос
Я использую Datagrid с несколькими столбцами данных (назовем это myDG), и один из этих столбцов является DateTime, привязанным к источнику данных.Его значение зависит от объекта "job", завершающего задание и присваивающего значение даты и времени.Поскольку обычно это занимает до минуты, значение в начале остается неназначенным.
Столбец asp.net определение является:
<asp:boundcolumn
DataField="CompletedDate"
HeaderText="Date Completed"
DataFormatString="{0:dd-MMM-yyyy <br> hh:mm:ss tt}" />
Таким образом, функциональность работает нормально, когда "задание" завершено и оно устанавливает время.Но перед этим, пока строка отображается, она отображается как
01-Январь-0001 12:00:00 утра
Я хочу скрыть это и решил, что лучшим способом было бы замаскировать эту конкретную строку и столбец пробелом или временно переопределить значение.У меня возникают проблемы с выполнением этого и поиском способа доступа к этой конкретной строке и столбцу.
Это столбец [3] datagrid и всегда находится в первой строке (поскольку новые строки добавляются вверху).
Есть ли способ напрямую получить доступ к этой ячейке и временно "скрыть" ее содержимое или замаскировать его?В идеале было бы здорово, если бы существовал способ очистить все строки, которые имели значение, равное этому, в своем столбце, но способ манипулирования конкретной ячейкой также работал бы.
-заранее спасибо!
Решение
Я делал подобные вещи в прошлом, и вот что я сделал.
Привяжите данные к столбцу, который вообще не виден.Добавьте видимый столбец для данных, которые вы хотите отобразить.Во время заполнения сетки просмотрите записи и для всех, которые имеют значение, отличное от 01 января 0001 12:00:00 утра, установите для вашей видимой строки это значение.Если оно действительно равно 01 января 0001 12:00: 00 утра, то установите значение вашей видимой строки в пустую строку или какое-либо значение по вашему выбору.(Вы даже можете установить цвет текста таким же, как цвет фона, чтобы он не отображался пользователю)
Другие советы
Я бы, вероятно, подключил OnItemDataBound, проверил значение и заменил / переформатировал, если требуется.
Я задал аналогичный вопрос о скрытии столбцов здесь.
Мне пришлось использовать событие RowCreated, чтобы скрыть определенные столбцы от пользователя (столбцы PK), и это также может помочь вам (особенно при скрытии столбцов с привязкой к базе данных).