Wyświetlałem listę niektórych klas w widoku siatki z AutoGenerateColumns = true.
Klasa ma prawie 70+ właściwości.
Teraz muszę zmienić nagłówek kolumny widoku siatki. Na przykład klasa ma właściwość o nazwie "ProductName", ale w widoku siatki po prostu muszę pokazać "Name".
Jednym ze sposobów jest usunięcie AutoGenerateColumns i oznaczenie wszystkiego jako boundfield. Ale to zbyt wiele ręcznego kodowania ... raczej wprowadzanie danych!
Zamierzałem użyć atrybutu Display właściwości class do wyświetlenia jako kolumna nagłówka w widoku siatki.
[Display(Name="Product")] public string ProdcutName { get; set;}
Czy jest jakiś sposób na użycie atrybutu Display w Gridview?
Zasugeruj także coś innego ...
Odpowiedzi:
0 dla odpowiedzi № 1Jedną z opcji jest użycie zdarzenia RowDataBound, w którym można manipulować wartościami tekstu nagłówka.
Jeśli wiesz, że indeks kolumny będzie zawsze taki sam, możesz zrobić coś tak prostego jak:
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[ColIndex].Text = "Product";
}
Lub możesz to ustawić deklaratywnie:
gView.Columns[ColIndex].HeaderText = "Product";