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

ListBox i DataGrid

[es] :: .NET :: ListBox i DataGrid

[ Pregleda: 3891 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon ListBox i DataGrid15.12.2004. u 20:46 - pre 206 meseci
Imam problem :
1.Neznam kako da u ListBox unesem podatke iz neke tabele ali da to bude cijeli red ako je to moguće. Probao sam da stavim DataSource=Tabela, DataMember=neka kolona i ništa.Dali to ide tako ili sam nešto zaboravio.
2.Kako mogu iz te ListBox prebaciti podatke u DataGrid
 
Odgovor na temu

spartak

Član broj: 5625
Poruke: 631
195.252.87.*



+3 Profil

icon Re: ListBox i DataGrid15.12.2004. u 22:37 - pre 206 meseci
Kako nista? Mislis bas nista ili nisi postigao sta si hteo?

1. Da li si pozvao myListBox.DataBind() posle postavljanja source?
2. Stvarno zelis da bindujes ceo red na list box? Pretpostavljam da si mislio na kolonu. Ako hoces stvarno red, treba da ides kolonu po kolonu u odabranom redu i dodajes vrednosti jednu za drugom 'rucno' dok ne dodjes do kraja tog reda (row).
3. Uhvati u watch dataset i proveri da li si tu prvu tabelu popunio podacima za pocetak.
4. Podatke mozes da prebacis u DataGrid na razlicite nacine. Mozes da pojasnis malo o cemu se tacno radi, sta zelis da postignes (zasto to radis) pa ces dobiti najoptimalnije resenje.
 
Odgovor na temu

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon Re: ListBox i DataGrid17.12.2004. u 02:29 - pre 206 meseci
Pardon upravu si mislio sam na red.Pod ništa mislim baš ništa (prazan ListBox) a što se tiče pozivanja DataBind nisam a da ti pravo kažem i ne znam kako.Uglavnom svrha svega toga je da kada kliknem na ListBox (u kojem se nalaze podatci npr:Proizvod,cijena(u jednom redu)) prenesem u DataGrid tablicu (svaki podatak u svoju kolonu).
 
Odgovor na temu

spartak

Član broj: 5625
Poruke: 631
*.yubc.net.



+3 Profil

icon Re: ListBox i DataGrid17.12.2004. u 08:17 - pre 206 meseci
Ok, ajde po redu.

Prvo moras da utvrdis da li je DataSet napunjen podacima. Na primer, tamo gde radis dataAdapter.Fill(mojDataSet); stavi breakpoint pa na sledecem koraku proveri u Watch da li dataset uopste sadrzi podatke koje si selektovao iz baze.

Drugo, podatke u ListBox punis ovim redom:
Code:

myListBox.DataSource = ds.Tables["Proizvodi"]; //prilagodi naziv tabele i imena kontrola i objekata
myListBox.DataMember = "ImeProizvoda";
myListBox.DataBind(); //omogucava punjenje podacima, prethodna dva reda su ti samo 'referenciranje' odakle


Dalje, u ListBox mozes da prikazes jednu kolonu, sto znaci ako hoces da imas i proizvod i cenu, moraces te dve kolone da saberes u isti string i onda 'rucno' dodas u ListBox...

Recimo, ovako nesto (nisam probao ovo da li je tacno ispisano, dajem ti samo kao ideju):
Code:

string strProizCena = myDataSet.Tables["ImeProizvoda"].Rows[0][0].ToString() + " - " myDataSet.Tables["Proizvodi"].Rows[0]["Cena"].ToString()


I rezultujuci string bi trebao da ti da nesto ovog tipa: "Oplata za Tomahawk Raketu - $867.350.99".

onda ga dodas u ListBox (u ovom slucaju ne radis databind, postavljanje datasource i member)

Code:

myListBox.Items.Add(new ListItem(strProizCena, "<value koju hoces da vezes za ime>");


Ajde iskobeljaj se prvo sa ovime pa se javi za taj Click dalje
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1341
194.106.171.*



+310 Profil

icon Re: ListBox i DataGrid17.12.2004. u 09:10 - pre 206 meseci
Mislim da bi prvo trebao da kazes da li koristis ASP.Net stranice ili Windows forme posto je spartak opisao punjenje ASP.Net list boxa koji se razlikuje od windows list boxa sa kojim se ovo sto trazis malo elegantnije resava.
 
Odgovor na temu

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon Re: ListBox i DataGrid18.12.2004. u 02:57 - pre 206 meseci
Radi se o Windows Formi
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1341
*.3dnet.co.yu.



+310 Profil

icon Re: ListBox i DataGrid18.12.2004. u 09:22 - pre 206 meseci
Ovako :

Code:

ListBox.DataSource = Tabela
ListBox.DisplayMember = "NazivKoloneKojaSePrikazuje"


Ako hoces da ti se prikazuju vrednosti iz više kolona onda napravi dodatnu kolonu u tabeli i u nju prepiši vrednosti iz drugih kolona i nju stavi u DisplayMember. Kreiranje i prepisivanje mozes raditi nalik ovom primeru:

Code:

Tabela.DataColumns.Add(New System.Data.DataColumn("CustomKolona", GetType(System.String)))
For I=0 To Tabela.Rows.Count - 1
    Tabela.Rows(I).Item("CustomKolona") = Tabela.Rows(I).Item("NazivProizvoda")+ " " + Tabela.Rows(I).Item("CenaProizvoda")
Next
ListBox.DisplayMember = "CustomKolona"


Sada da bi kasnije video koji ti je selektovan red u listi koristi sledeci kod:

Code:

CType(Me.BindingContext(Tabela).Current, System.Data.DataRowView).Row
' ili
CType(ListBox.Current, System.Data.DataRowView).Row


Da bi dobio 'efekat' premeštanja redova iz liste predlazem ti kao najednostavnije resenje da za grid postavis DataSource na drugu tabelu koja ima istu strukturu kao i tabela za listu i da u nju importujes red iz tabele za listu a iz tabele za listu posle obrises taj red (postoje i drugi nacini da uradis ovo preko DataView-a ali da ne komplikujem). Primer :
Code:

' Premestanje iz liste u grid
TabelaZaGrid.ImportRow(CType(Me.BindingContext(Tabela).Current, System.Data.DataRowView).Row)
Tabela.Row.Remove(CType(Me.BindingContext(Tabela).Current, System.Data.DataRowView).Row)


Ista stvar je i ako trebas da vratis iz grida u listu, samo obrnes tabele u koju importujes i iz koje brises...
Ako ti bude trebao trenutni red u gridu njega dobijas ovako:

Code:

' Ako je izvor podataka na gridu postavljen ovako : Grid.DataSource = TabelaZaGrid
CType(Me.BindingContext(TabelaZaGrid).Current, System.Data.DataRowView).Row

' Ako je izvor podataka na gridu postavljen ovako : Grid.DataSource = DataSet, Grid.DataMember = "ImeTabeleuDataSetu"
CType(Me.BindingContext(DataSet, "ImeTabeleuDataSetu"
).Current, System.Data.DataRowView).Row


Inace najednostavniji nacin da dobijes tabelu iste strukture kao neka druga tabela ide ovako :

Code:

NekaTabela = Tabela.Clone()

 
Odgovor na temu

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon Re: ListBox i DataGrid19.12.2004. u 02:58 - pre 206 meseci
Neznam šta da kažem.Dakle probao sam opet da unesem u ListBox proportis tablicu DataSource=objdTablica , DataMember=Naziv (što je ime kolone) i opet ništa (ListBox je prazan).Onda sam probao pisati kod ali mi je izbacivao grešku "Reference to a non-shered member requirs an object reference" isto to i za DataMember.
 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu.



+64 Profil

icon Re: ListBox i DataGrid19.12.2004. u 08:49 - pre 206 meseci
ListBox je ima klase. Tako da ako si probao ListBox.neka_član, to neće ići (ako nije shared). Moraš da referenciraš instancu klase:
Code:
Dim MojListBox as ListBox
MojListBox.DataSource = Tabela

i slično...
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1341
*.3dnet.co.yu.



+310 Profil

icon Re: ListBox i DataGrid19.12.2004. u 15:31 - pre 206 meseci
Mozda sam trebao da napomenem da se ovde podrazumeva rad sa instanciranim objektima a identifikatori koji su koristeni su nekog opsteg naziva, i tu su da bi prikazali princip a ne konkretnu implementaciju tvog slucaja. Dakle, tvoje je da instanciras list box kao sto ti je napisao darkoss ili da ga zalepis na formu pa ce ti se izgenerisati kod (inace ovo spada u standardni rad sa objektima, to je nesto osnovno sto uglavnom neces naci u primerima ali se podrazumeva, kao sto moras da imas deklarisanu promenljivu I da bi je koristio u petlji tako moras da imas i instanciran objekat da bi mogao da ga koristis, menjas mu svojstva ili pozivas metode). Normalno, tebi ce se ListBox zvati mozda ListBox1 ili Lista ali princip je isti, npr. moras zameniti ListBox sa ListBox1, TabelaZaGrid sa Table1 (ako si je tako nazvao).
Uzgred primetio sam da pominjes DataMember svojstvo koje nisam pominjao. Probaj da u svojstvo DisplayMember stavis ime kolone umesto u svojstvo DataMember.
 
Odgovor na temu

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon Re: ListBox i DataGrid22.12.2004. u 00:36 - pre 206 meseci
A kako da napravim Referencu instanc klase.
Proba sam kodom unijeti:
Code:

 Dim MojListBox As ListBox
        MojListBox.DataSource = objd.Table
        MojListBox.DisplayMember = "Ime"

Ali mi je javljao grešku:
Object Reference not set to an instance of an object

[Ovu poruku je menjao Dragi Tata dana 22.12.2004. u 13:58 GMT+1]
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.fiberop.matgnet.com.

Sajt: www.mika.rs


+6 Profil

icon Re: ListBox i DataGrid22.12.2004. u 09:06 - pre 206 meseci
Code:
Dim MojListBox As ListBox


Ovim si samo deklarisao tip reference (ListBox). Pre nego sto je koristis, referenci moras da dodelis instancu, sa operatorom New.

Posto su WinForms u pitanju, ovo se obicno radi u inicijalizciji kontrola. VS sve to izgenerise iz dizajnera (od deklaracije do instanciranja), pa posle mozes opushteno da koristis tu referencu
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

ceso

Član broj: 30378
Poruke: 65
*.dialin.iskon.hr.



Profil

icon Re: ListBox i DataGrid23.12.2004. u 00:24 - pre 206 meseci
Ok uspio sam unijeti jednu kolonu u ListBox i zahvaljujem se na tome.Ali što se tiče druge nisam.Prebacivanje drugih kolona u jednu u tabeli pa onda unos te jedne u listu neć ići zato što ja imam tabelu napravitu u Access-u.Šta sad da radim.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.fiberop.matgnet.com.

Sajt: www.mika.rs


+6 Profil

icon Re: ListBox i DataGrid23.12.2004. u 10:14 - pre 206 meseci
Citat:
Ali što se tiče druge nisam.Prebacivanje drugih kolona u jednu u tabeli pa onda unos te jedne u listu neć ići zato što ja imam tabelu napravitu u Access-u


Nema veze u cemu je napravljena tabela, sve dok nam je T-SQL-a
Mozes u select upitu da sastavis vise kolona u jednu, npr:
Code:
select ime + ' ' + prezime + ' ' + adresa [Tri kolone] from Mushterije

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

[es] :: .NET :: ListBox i DataGrid

[ Pregleda: 3891 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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