.NET Data Grid Customization...

3 отговора 146 прегледа
#1

.NET Data Grid Customization...

Здавейте...
Абе боря се тука с едно "Проблемче". Та нещатата стоят така:
1. пиша .НЕТ (на C#) приложение, което използва ДатаГрид.
2. Populate-вам го успешно, и стигам до момента, в които искам да задам на различните колони различен цвят...
поразрових се из "DataGridTableStyle" и "GridTableStylesCollection", но нещо ударих на камък... (в гугъла - не открих нищо конкретно...)
Та значи има ли начин да се сетне различен цвят на всяка колона (не различен цвят за ред, (AlternatingColor-a)).. без да се налага да се наследява и да се пренаписват PAINT методите... ?

Отговор
в отговор на Net-Death #2

Re: .NET Data Grid Customization...

Примерно нещо такова върши ли ти работа?

<asp:DataGrid id=DataGrid1 runat="server">
<Columns>
<asp:BoundColumn ItemStyle-BackColor="red" DataField="UserName" />
<asp:BoundColumn ItemStyle-BackColor="blue" DataField="Password" />
</Columns>
</asp:DataGrid>

ItemStyle-* има доста форматиращи възможности, които важат само за дадената колона. Ако не ти върши работа пиши пак и ще измислим нещо.

Отговор
в отговор на Net-Death #3

Re: .NET Data Grid Customization...

ако правилно те разбирам, става въпрос за winforms, нали?
е, трябва да си направиш custom class за column style и да override-неш рисуването. няма друг начин.

Отговор
в отговор на Net-Death #4

The Solution...

Да-става въпрос за WinForms... не за ASP.NET...

порових се доста и накрая направих както пишеше в дебелите книги... (MSDN-a и по форумите за .НЕТ тук таме...)

Наследих си abstract класа "DataGridColumnStyle" и си свърших работата както трябва и стана каквото исках...
е, в интерес на истината остана неприятен привкус от необходимоста да пишеш GDI код от рода на:

SolidBrush sBrBack = new SolidBrush(Color.Azure);
g.FillRectangle(sBrBack,rect);
и
g.DrawString(...)

в PAINT Методите...

но пък добавих и други Features на колоните, от които имах нужда...

Отговор