Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DataGrid and C# Pomoc

[es] :: .NET :: .NET Desktop razvoj :: DataGrid and C# Pomoc

[ Pregleda: 2050 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

EXeX

Član broj: 20651
Poruke: 166
*.tel.net.ba



Profil

icon DataGrid and C# Pomoc 28.08.2004. u 15:16 - pre 187 meseci
Pokusao sam da nesto napravim sa DataGrid-om u C#.
Ucitavanje podataka iz DB u Grid je Ok.

No medjutim problem mi je kako recimo kad u Grid unesem podatke ,kako
to spremiti u DB.
Uopste ne znam koji dogadjaj da upotrebim.

Ili recimo primjer imam grid koji ima 3 kolone prva je redni broj,druga ime treca prezime,e sad kako napraviti kad u prvu kolonu upisem 22 a u druge dvije mi izbaci ime i prezime pode rednim brojem 22.
Meni je jasan princip,kako bi trebalo to da radi, ali ne znam koje dogadjaje upotrijebiti.

I nije mi jasno kad u grid unosim podatke recimo u prvi red,o mi onda odmah izbaci sljedeci prazan red.Zasto je to tako.
I da li kad ja npr popunim prvi red on to cuva u nekom Buffer-u i ako da u kojem.

Samo da napomenem kreirao sam dataset,datatable,datacolumn,i datarow objekte i to sam sve povezao.

Hvala.
eX
 
Odgovor na temu

veljaradenkovic
Velja Radenkovic
Beograd

Član broj: 2977
Poruke: 281
*.ppp-bg.sezampro.yu

ICQ: 147120023


Profil

icon Re: DataGrid and C# Pomoc 28.08.2004. u 21:17 - pre 187 meseci
1. Ako hoces da ti ne dodaje novi red u DataGrid mozes to ovako (instanca klase DataGrid ti se recimo zove dataGrid1):

Code:

            //
            //Nema dodavanja novih redova... 
            //
            CurrencyManager cm = (CurrencyManager)this.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember];      
 
            ((DataView)cm.List).AllowNew = false;


2. Sto se tice 'buffera u kom DataGrid cuva podatke'.

Model DataGrid classe (dakle podaci) je na raspolaganju upotrebom svojstva 'Data source' recimo da dobijes trenutno stanje podataka u DataGridu kao objekat DataTable mozes ovako:

Code:
DataTable dataTable = (DataTable)this.dataGrid1.DataSource;


3. Kako ces da znas kad su se podaci promenili? Ovako:

Code:
((DataTable)this.dataGrid1.DataSource).RowChanged+=new DataRowChangeEventHandler(dataGrid1_RowChanged);


Kasnije u kodu gde zelis da obradis taj dogadjaj implementiraces funkciju koja ima sledeci signature:

Code:
private void dataGrid1_RowChanged(object sender,DataRowChangeEventArgs e)


Nadam se da sma ti pomogao ako nesto zapne pitaj.

Pozdrav
 
Odgovor na temu

EXeX

Član broj: 20651
Poruke: 166
*.tel.net.ba



Profil

icon Re: DataGrid and C# Pomoc 28.08.2004. u 22:59 - pre 187 meseci
Velja hvala ali jos nisam rijesio svoj problem.
I ja sam ranije koristio dogadjaj koji si ti naveo ali program puca.

Naime ja sam skuzio sljedece:
Kad ja recimo unesem podatke u grid ti mi se podaci automatski cuvaju
u datatable objektu,to sam skuzio i mogu ocitati te podatke.

Ali ono sto ja zelim je da u prvu kolonu otkucam tekst(npr redni broj) i da mi se u druge dvije kolone pojavi ime i prezime.

E sad kad ja u prvu kolonu otkucam recimo broj 1 i kliknem enter onda mi je
u datatable objektu dodan jedan row koji ima oblik "1" ," " ," ".
E sad bi ja trebao promijeniti taj row tako da mi se ucita ime i prezime iz neke
baze ili nekog buffera,pa da mi se to prikaze u Gridu.
Za probu nisam koristio ni buffer ni bazu vec sam uradio ovako:

Dakle imam delegat:

this.dataTable1.RowChanged += new System.Data.DataRowChangeEventHandler(this.dataTable1_RowChanged);

I imam funkciju
private void dataTable1_RowChanged(object sender, System.Data.DataRowChangeEventArgs e)
{
int rowIndex = this.dataGrid1.CurrentRowIndex;

dr = this.dataTable1.Rows[rowIndex];

dr[0]="1";dr[1]="ime";dr[2]="prezime";

}

Ovaj kod u funkciji bi trebao kad ja kliknem enter row objektu dr promijeni
vrijednosti.
Ali ovo neradi,pokusao sam jos dosta toga ali sto god probam program puca.

A ako izbacim dr[1]="ime";dr[2]="prezime"; i ostavim samo dr[0]="1"; onda se nista ne desava.

Ovo je zadnje sto sam pokusao mada vise ne znam ni sam sta sve nisam pokusavao,imao sam i boljih ideja bar na izgled od prilozenog ali sve je pucalo.

Hvala Unaprijed.
eX
 
Odgovor na temu

EXeX

Član broj: 20651
Poruke: 166
*.tel.net.ba



Profil

icon Re: DataGrid and C# Pomoc 28.08.2004. u 23:13 - pre 187 meseci
Pokusao sam i ovo:

int rowIndex = this.dataGrid1.CurrentRowIndex;
this.dataTable1.Rows[rowIndex]["Column1"] = "10";
this.dataTable1.Rows[rowIndex]["Column2"] = "10";
this.dataTable1.Rows[rowIndex]["Column3"] = "10";

Ali kao da se nista ne desava.

Ali kad pokusam ovo
int rowIndex = this.dataGrid1.CurrentRowIndex;
this.dataTable1.Rows[rowIndex-1]["Column1"] = "10";
this.dataTable1.Rows[rowIndex-1]["Column2"] = "10";
this.dataTable1.Rows[rowIndex-1]["Column3"] = "10";

Program puca,samo se ugasi.

A kad posam samo ovo:
int rowIndex = this.dataGrid1.CurrentRowIndex;
this.dataTable1.Rows[rowIndex-1]["Column1"] = "10";

Onda radi,ali mijenja se samo kolona 1 i to ne zadnji red vec predzadnji.

Pokusao sam dodavati redove u funkciji ali opet program puca,ovako:
this.dataTable1.Rows.Add(new object[]{"1","2","3"});

eX
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: DataGrid and C# Pomoc

[ Pregleda: 2050 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.