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

Bindovanje Column Box-a?

[es] :: .NET :: Bindovanje Column Box-a?

[ Pregleda: 2187 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Bindovanje Column Box-a?29.07.2007. u 13:31 - pre 203 meseci
Imam dvije tabele u datasetu koje su povezane preko primary i foreign kljuceva. Imam tabelu 'Dobavljaci' i tabelu 'Kalkulacije' koja ima polje -dobavljac kao foreign kljuc relacije.

Sada, kada korisnik unosi kalkulacije mora unijeti i dobavljaca, tj. njegov primarni kljuc. Ja hocu da im ponudim nazive dobavljaca u comboboxu a da se kljucevi dobavljaca automatski vezu u tabelu kalkulacija u polje -dobavljac. To je u accessu dva klika.

Ovako sam nasao na msdn-u:

Datasource treba da bude: this.dataset1
DisplayMember: "Dobavljaci.Naziv_dobavljaca"
ValueMember: "Dobavljaci.ID_dobavljaca"

a onda treba da se binduje na osobinu 'SelectedValue' comboboxa:

this.combobox1.databinding.add("SelectedValue",this.dataset1,"Kalkulacije.Dobavljac");

To je onako kako pise na msdn-u.

Medjutim, kada ja izaberem drugog dobavljaca, vrijednost polja "Dobavljac" u tabeli kalkulacije se ne mijenja.

A zasto da mi je znat????

Kada obradim dogadjaj promjene indeksa comboboxa, nadjem datarow po kljucu pa promijenim vrijednost polja na ono sto je value comboboxa sve radi kako treba, ali ja to hocu automatski, jer to tako moze.

Dje grijesim, ili mi nesto fali, zna li ko?
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: Bindovanje Column Box-a?30.07.2007. u 11:34 - pre 203 meseci
Citat:
this.combobox1.databinding.add("SelectedValue",this.dataset1,"Kalkulacije.Dobavljac");


A kog tipa je polje Kalkulacije.Dobavljac ? Je'l to spoljni kljuc na Dobavljaci.ID_dobavljaca ?

BTW neces videti promene dok ne promenis trenutni record u BindingManager-u, ili dok ne pozoves EndCurrentEdit (npr. ((CurrencyManager)this.BindingContext[dataset1]).EndCurrentEdit();)


America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
85.94.121.*



Profil

icon Re: Bindovanje Column Box-a?30.07.2007. u 14:16 - pre 203 meseci
Da. Kalkulacije.Dobavljac je foriegn key, a Dobavljac.ID_Dobavljaca je primary key.

A nijesam bio svjestan da se promjena ne vidi automatski, probacu. Inace je bindovanje OK?

Pozdrav.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: Bindovanje Column Box-a?30.07.2007. u 14:23 - pre 203 meseci
Pa da, mislim pristup je ok, a da li je dobro zavisi da li si naveo ispravna polja za bindovanje Ako bude greske, samo to moze da bude problem.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Bindovanje Column Box-a?30.07.2007. u 17:10 - pre 203 meseci
Dobar si majstore, sve je onako kako si rekao.

Onda da te jos pitam, koji je najbolji dogadjaj kada da pozovem EndCurrentEdit() metodu CurrencyManager-a. Mada nije to toliko bitno, jer korisnik ionako ne vidi na formi vrijednost foreign kljuca. Kada koristim SelectedIndexChange ili nesto tako, on se poziva i prilikom ucitavanja forme, bez mog direktnog izbora stavke combobox-a.

Jos imam velikih problema sa azuriranjem baze. Ja prosto uradim: this.da1.update(this.dataset1), i on ne prijavi nikakvu gresku, ali isto tako ne azurira bazu. Citao sam nedje da se treba prvo pozvati GetChanges() metod dataseta, pa radit neki merge, pa tek onda update. Koja je ispravna procedura azuriranja?

Pozdrav i hvala.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: Bindovanje Column Box-a?01.08.2007. u 08:51 - pre 203 meseci
Citat:
koji je najbolji dogadjaj kada da pozovem EndCurrentEdit()


To je na tebi Zavisno od toga kako si dizajnirao aplikaciju, razmotri koji su moguci slucajevi: 1) korisnik odabere neki drugi record (onda nema portrebe za EndCurrentEdit); 2) korisnik pozove 'Save', ili zatvori formu na kojoj je radio izmene; 3) popuniti po izboru zavisno od dizajna


Citat:
Jos imam velikih problema sa azuriranjem baze


Cini mi se da je greska sto pozivas update komandu nad celim datasetom, s' obzirom da u njemu imas vise tabela. Na cega ti lice komande za Insert/Update/Delete DataAdaptera ? Da li si stavio Update u try-catch blok ?

America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Bindovanje Column Box-a?03.08.2007. u 18:32 - pre 203 meseci
Uh imao sam veliku gresku, jedna tabela na SQL serveru nije imala primarni kljuc, pa je to pravilo probleme. Danas sam odradio nesto tipa:

da.Fill(this.dataset1.Tables[0].GetChanges());

i otislo je u bazu bez problema.

Danas opet imam problema sa bindovanjem comboboxa, ali to mora da je sitnica. Kako ono imam da podesim datasource, displaymember i valuemember osobine, kada treba da se podesi valuemember, program puca i javi nesto kao da nije moguce bindovati novi member, sto li je to vec. Kod je potpuno identican kao u proslom projektu koji je radio odlicno, od kada si mi ti rekao kako. Ali dako to rijesim sam.

Sad sam dosao do stupnja pretrage i filtriranja. Imam formu kalkulacija koja ima i datagrid sa detaljima kalkulacije. Napravim jedan unbound textbox u kome hocu da unesem broj kalkulacije (to nije primarni kljuc) i da se odmah pozicioniram na tu kalkulaciju.
Probao sam sa dataview-om. Napravim dataview nad tabelom kalkulacije, podesim da je rowsort = prazan string, zatim sortiranje po broju kalkulacije i da trazi one CurrentRows zapise. Kada onda odradim:

dv.Find(txtbox.Text)

on mi vrati neki index koji ja proslijedim position osobini CurrencyManager-a. Ali avaj. On mi je vratio index reda iz sortiranog niza redova po broju kalkulacije, a meni su zapisi/redovi na formi sortirani po primarnom kljucu, pa mi se indeksi ne poklapaju. Tako da Find metoda nadje odgovarajucu kalkulaciju, ali ce mi prikazati neku sasvim trecu, kojoj se poklopi nadjeni indeks sa trenutnim indeksom na formi. Uh. Sta onda da radim. Kako ovo da rijesim, ili mozda ima neki laksi nacin da se proizvoljno setam po zapisia na formi.

Oprosti sto te zapitkujem ovoliko ali bolji si mi ti nege sve ove knjige sto imam.

Pozdrav.
 
Odgovor na temu

[es] :: .NET :: Bindovanje Column Box-a?

[ Pregleda: 2187 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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