Mam tabelę GridView w której muszę wyświetlić kolumny: CommandField z opcją usuwania, BoundField z datą i pozostałe z danymi.
Chciałbym, aby opcja edycji była widoczna jedynie dla wierszy, w których data jest dzisiejsza lub nowsza. Jak to najlepiej zrobić?
Korzystając z PageLoad GridView, czy przerobić pierwszą kolumnę (CommandField) na TemplateField i dla niej w PageLoad?
Ukrycie opcji Delete dla niektórych wierszy GridView
- Rejestracja: dni
- Ostatnio: dni
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
0
Przyciski zrób jako TemplateField zamiast CommandField a w środku daj ImageButton. Ustaw w ImageButton property Visible odpowiednio do tego co chcesz osiągnąć np:
Visible='<%# ShowDeleteButton(Eval("DT"))%>'
i w pliku CS utwórz taką funkcję odpowiedzialną za wyznaczenie widoczności przycisku
- Rejestracja: dni
- Ostatnio: dni
0
Zrobiłem to tak:
using System.Globalization;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
var dtfi = new DateTimeFormatInfo { ShortDatePattern = "dd.MM.yyyy", DateSeparator = "." };
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Convert.ToDateTime(e.Row.Cells[1].Text, dtfi) < DateTime.Today)
{
e.Row.Cells[0].Controls[0].Visible = false;
}
}
}
Co sądzicie? ;)