binding

8 отговора 185 прегледа
#1

binding

Ако имам обекти от тип Person (с полета Name и Age), и ги натъпча в един ArrayList, после искам да bind-на този arrayList в DataGrid с две колони - Name и Age, които да визуализират съответно полетата на обектите, как да го направя?

Лесно се bind-ва в DropDown примерно, но DataGrida казва, че не са му ясни колонките.

asp.net

-------------
Special killer double trouble triple extra nicotine monster!

Редактирано от z_free на

Отговор
в отговор на z_free #2

Re: binding

Правиш си пропъртита. То и без това не е много добра идея да имаш public полета, а пропъртитата може и да са readonly (тъй де, само get accessor).

Мммм, а ти наясно ли си колко ще ти хвръкне viewstate-a с този DataGrid? Ако не ти е 100% необходим, по-добре се ориентирай към repeater.

но след безсънни дълги нощи станах силен и голям
и вече знам, че мога да се справя сам
Отговор
в отговор на Survivor #3

аха

Аха, има идея за repeater-a

А ако на DataGrida му задам EnableViewState = False; това няма ли да подобри положението?

PS: [линк] .. :) но се пише малко код

-------------
Special killer double trouble triple extra nicotine monster!
Отговор
в отговор на z_free #4

Re: аха

Тъй-тъй. EnableViewState ще ти реши проблема. Само че аз съм фен на "повтарячите".
А в статийката забеляза ли, че приказват за Windows Forms . Демек, web контролата DataGrid не е win контролата DataGrid... И пак приказват за пропъртита, а не полета.

но след безсънни дълги нощи станах силен и голям
и вече знам, че мога да се справя сам
Отговор
в отговор на z_free #5

Re: binding

Защо вместо да ги тъпчеш в ArrayList не си ги буташ в DataTable и после е лесно

DataTable dt=new DataTable();
dt.Columns.Add(new DataColumn("Name",typeof(string)));
dt.Columns.Add(new DataColumn("Age",typeof(int)));
....
DataRow dr=dt.NewRow();
dr["Name"]="nnnnnnnnnnnn";
dr["age"]=19;
dt.Rows.Add(dr);
....
DataGrid1.DataSource=dt;
DataGrid1.DataBind();

Earls of black, flying high
Coming through the darkened sky
Отговор
в отговор на BlackEarl #6

защото ..

Не ги тъпча в дейта тейбъл, защото някак не ми се вписват в концепцията това, което визуализирам да са класове, които се наследяват сложно - да минавеам през data table ще е допълнителна стъпка.

-------------
Special killer double trouble triple extra nicotine monster!

Редактирано от z_free на

Отговор
в отговор на Survivor #7

Re: аха

Да, имат резон повтарячите, щото са по-customizable, но повече време ще ти отнеме да ги правиш, особено ако ти трябва пейджинг и т.н. ... струва ми се.

-------------
Special killer double trouble triple extra nicotine monster!
Отговор
в отговор на z_free #8

Re: аха

Ако само пейджинга те притеснява, що не разгледаш това?
Ако ти се играе пък, може да си напишеш един наследник и да си го позваш него оттук натам...

но след безсънни дълги нощи станах силен и голям
и вече знам, че мога да се справя сам
Отговор
в отговор на Survivor #9

Re: аха

много thank you, хубава придобивка

от няколко дни пиша тестово на asp net, така че не ми е ясно кое какви предимства има, ще разгледам по обстойно нещата около repeaterите :)

-------------
Special killer double trouble triple extra nicotine monster!
Отговор