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

DropdownList i izbor vrednosti

[es] :: .NET :: DropdownList i izbor vrednosti

[ Pregleda: 2403 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon DropdownList i izbor vrednosti26.10.2006. u 22:41 - pre 213 meseci
Sve vise znam koliko ne znam.

Nemojte se ljutiti zbog velikog broja mojih postova, ali ja sam pocetnik u WEB programiranju, a knjige koje posedujem su krajnje beskorisne za primere koji mi trebaju.

Kao sto rekoh koristim Web Developer 2005 i C#.

Napravio sam dropdownlist i nekoliko textbox-ova. svi textbox-ovi su visible = false i hocu da kada izaberem odgovarajuci listitem dobijem i odgovarajuce textbox-ove.

Drugo pitanje je: da li je moguce povezati textBox-ove s odgovarajucim poljima u bazi? Tj. da li postoji nesto kao DataBindings, DataSource i DisplayMember?

Kako se to radi?

Hvala

[Ovu poruku je menjao gilespy dana 27.10.2006. u 00:03 GMT+1]
 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon Re: DropdownList i izbor vrednosti26.10.2006. u 23:21 - pre 213 meseci
Uspeo sam resiti prvo pitanje. Doduse, cini mi se da nije bas elegantno.

Koristio sam if, else if kombinaciju i kao uslov dao this.dropdownlist.selectedvalue.tostring().contains("listitem1")
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti26.10.2006. u 23:41 - pre 213 meseci
Odgovor na drugo pitanje:

Naravno da je moguce povezati to, ali, naravno, ne mozes da povezujes text property sa poljima u databazi nego prvo moras da napravis objekat u koji ces da pozoves vrednosti iz databaze i tek onda da ih povezes. U tvom slucaju taj objekat je dataset.
 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
*.156.eunet.yu.



+1 Profil

icon Re: DropdownList i izbor vrednosti27.10.2006. u 00:45 - pre 213 meseci
I ja tebi :-)

Mozes li molim te to malo detaljnije. Nikada nisam radio nesto slicno, a stavrno sam zelen u toj sferi.

Kada sam radio desktop aplikaciju (sad traze isto to ali WEB) tada je jednostavno u properties-u textBox-a kao dataMember bila odabrana kolona tabele u bazi i to je to.

Sta u stvari zelim postici. U tabeli nastavnik imam polja ID, Ime, JMBG... Hocu da kada iz padajuceg menija izaberem ime da se u readonly textBox-ove upisu odgovarajuce vrednosti za ID i JMBG. Jos bolje ako bi moglo, klikom na red u tabeli u okviru dataGrida-a popunjavaju se read only box-ovi za ime... i klikom na delete se poziva store proc. koja brise selektovani red u tabeli.

Procedure su gotove, samo jos da provalim ovu matematiku s textBox-ovima.


Hvala
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti27.10.2006. u 02:47 - pre 213 meseci
Ma, objasnio bih ti ja to, ali ... :)

Skroz si me zbunio; kazes, u aplikaciji si uspeo da povezes (bind) properties direktno sa poljima u databazi? To mi malo nije jasno... Zapravo nije mi jasno uopste. Da bi bilo sta uradio sa da databazom (programski), moras da imas nekog posrednika od connection objekta, preko queries i reader-a, pa na kraju do dataadaptera i dataseta. I sad ja sedim, kontam i pitam se, kako si ti to uspeo da povezes te properties direktno sa databazom?
 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon Re: DropdownList i izbor vrednosti27.10.2006. u 11:32 - pre 213 meseci
Lose sam se izrazio. Nije bas direktno, vec preko dataSet-a, ali takav nacin ne radi kada je u pitanju WEB aplikacija.

private void ucitajPodatke(Nastava.DataSet1 temp)
{
try
{
dataSet11.EnforceConstraints = false;
this.sqlConnection1.Open();
this.sqlDataAdapter1.Fill(temp);



}
catch(System.Exception exc)
{
MessageBox.Show(exc.Message);
}
finally
{
dataSet11.EnforceConstraints = true;
this.sqlConnection1.Close();
}
}

private void popuniDataSet()
{
Nastava.DataSet1 popuniTemp = new Nastava.DataSet1();


try
{
this.ucitajPodatke(popuniTemp);


}
catch(System.Exception exc)
{
MessageBox.Show(exc.Message);
}
try
{
dataSet11.Clear();
dataSet11.Merge(popuniTemp);
dataGridNastavnik.SetDataBinding(dataSet11, "pregled_Nastavnik");
dataGridNastavnik2.SetDataBinding(dataSet11, "pregled_Nastavnik");


}
catch(System.Exception exc1)
{
MessageBox.Show(exc1.Message);
}
}

Ovo mi sluzi kao konekcija s bazom u desktop aplikaciji. Nakon toga u properties-u textBox-a pod data bindingom samo ukazem na odgovarajuci dataSet i to je to.

U WEB aplikaciji se to malo komlikuje. Combobox, tj. listbox lako povezujem
Za povezivanje s bazom koristim samo DataSourceID polje u okviru Data grupe u properties-u.
Sto se samog povezivanja s bazom tice koristim:

SqlDataSource predavanjaDataSource = new SqlDataSource();
predavanjaDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["Predavanja_DataConnectionString1"].ToString();

a o ostalom se brine web.config
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti27.10.2006. u 13:43 - pre 213 meseci
U web aplikacijama moras da dodas posle konfigurasana databindings, jednostavno:


Code:



Databind()





Ako to nisi vec uradio, onda se to uglavnom radi u Myform_Load sub-u. Posto ja programiran u vb a ne u c# neka me neko ispravi ako se to u c# drugacije radi.

 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon Re: DropdownList i izbor vrednosti27.10.2006. u 23:14 - pre 212 meseci
OK, ali problem je u tome sto kod koji sam naveo za povezivanje s bazom radi samo kada su u pitanju desktop aplikacije, ali ne i web. Naime, u slucaju web app uopste ne postoji sqlConnection ili dataSet kontrola koja se moze preneti iz toolbox-a.

To me i muci. Ja imam gotovu applikaciju koja savrseno radi, ali to nece ni da cuje za web okruzenje.

Ako ti je lakse objasni mi kako da klikom na red u dataGrid-u prenesem vrednosti iz kolona u textBox-ove.
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti28.10.2006. u 07:08 - pre 212 meseci
E dobro :)

Problem je u tome sto se datagrid za windows forme i webaplikacije bitno razlikuju. U stvari, citava koncepcija je drugacija...


U datagridu za windows aplikacije mozes da listas kroz datagrid (po redovima) i imas direktnu vezu (binding) sa datasetom, pa tako mozes i da povezes npr. text property tekst boksa jer datagrid drzi referencu u datasetu na oznaceni red.

U datagridu u webaplikacijama to ide drugacije jer nema te reference pa tako ne mozes ni da povezes tekst boksove jer jednostavno, nemas sa cime. Drugim recima, kako dataset da zna o kojem se redu radi ako ne mozes da ga oznacis u datagridu.


Da bi to postigao i u webaplikacijama, moras malo da se pozabavis datagrid property builderom. U property builderu mozes da dodas ekstra kolonu i u nju da stavis npr. button ili link, preko kojih ces moci sam da npravis tu referencu na odredjeni red dataseta. U svakom slucaju, ako se to vec odnosi na read only tekst boksove, onda je dovoljno da podatke iz datagrida direktno prepises u tekst boksove pritiskom na to dugme ili link ( a ovde necu da ulazim u to zasto to radis ako te podatke vec imas u datagridu).

Na isti nacin (preko datagrid property buildera) mozes dodati edit i delete kontrole u datagrid, ako zelis da menjas podatke ili brises redove iz (web) datagrida.

Ps. I za web aplikacije mozes da generises dataadapter, dataset i ostalo automatski, samo sto se u visual studiju to radi preko server eksplorera.
 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon Re: DropdownList i izbor vrednosti28.10.2006. u 13:08 - pre 212 meseci
Provalio sam da mogu kreirati Edit i Delete direktno na dataGrid-u, ali nisam provalio kako da ih povezem sa store procedurama, vec samo kako da direktno ispisem komandu.


Uzgred, gde se cuva kod za Edit i Delete koji su direktno na dataGrid-u, posto bih hteo da ih postavim u try catch petlju? Naime, te operacije se obavljaju nad tabelom koja je u relaciji s drugim tabelama i u nekim slucajevima nije moguce brisanje. Zbog toga bih hteo da postavim try catch blok.


[Ovu poruku je menjao gilespy dana 28.10.2006. u 14:53 GMT+1]
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti28.10.2006. u 16:13 - pre 212 meseci
Ok. Ali si mi duzan pivo :)


U property builederu za tvoj datagrid (ja cu u kodu koristiti MojDataGrid), oznaci Columns u levom meniju. U tree vieuw-u pod 'Available Columns' ekspanduj node 'Button Column', oznaci Delete, prebaci ga uz pomoc strelice u desni treeview i stisni Apply.

Evo ti primer za brisanje reda ( vb, sorry:), ali snaci ces se ti vec.

Code:



Protected Sub MojDataGrid_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles MojDataGrid.DeleteCommand

'predpostavka  je da je MojDataSet source dataset za MojDataGrid i da je ime tabele "MojaTabela i da je prva (nulta) kolona MojID.   


'Trazim spcifirani red i brisem ga


Dim strMojID As String = MojDataGrid.DataKeys(e.Item.ItemIndex) 'izdvaja vrednost za MojID za specirifani red

'listam kroz dataset i trazim spcifirani red u datasetu

dim dr as DataRow

For Each dr in MojDataSet.Tables("MojaTabela").Rows

'kada nadjem specifirani red brisem ga iz dataseta i izlazim iz each-for

If dr(0) = strMojID then

MojDataSet.Tables("MojaTabela).rows.remove(dr)

Exit For

End If

Next

'vrsim update database

MojDataAdapter.Update(MojDataSet, "MojaTabela")

'opet vrsim binding podataka sa korisinicki interface-om, a to je najbolje da stavis u poseban Sub (Void) tako da ga mozes pozvati i kada prvi puta pozoves stranicu ili kada radis akcije tipa MojDataGrid_UpdateCommand, MojDataGrid_CancelCommand i MojDataGrid_EditCommand

MojDataGrid.Datasoruce = MojDataSet
MojDataGrid.DataMember = "MojaTabela"
MojDataGrid.DataBind()

End Sub



Zakljucak:) za razliku od win apps, u web apps ces za svaku promenu u datasetu morati da izvrsis ponovni binding dataseta sa ui ( user interface).
 
Odgovor na temu

Vuko_
Amsterdam

Član broj: 19660
Poruke: 35
*.adsl.xs4all.nl.



Profil

icon Re: DropdownList i izbor vrednosti28.10.2006. u 17:13 - pre 212 meseci
Uspeo sam sa ovom gore porukom da razbijem format strane ( u to ime ziveli :), nemam cak ni opciju da promenim poruku. Izvinjavam se.
 
Odgovor na temu

gilespy

Član broj: 39868
Poruke: 232
194.106.187.*



+1 Profil

icon Re: DropdownList i izbor vrednosti28.10.2006. u 19:05 - pre 212 meseci
Imas i dva piva.

Sad jos samo da provalim sta kako i gde plus jos u C#-u.

Ako dobro kapiram tvoj kod, sada vise ne koristim default delete link koji se moze postaviti nad GridView, vec button za koji pisem komandu i onda to stavim u try catch blok.

A zar nije moglo nesto kao, ja selektujem red u tabeli (preko autogenerated select linka) i onda se u textBoxove upise vrednosti iz odgovarajucih kolona, pa ja kliknem na obrisi sto pozove store proc, koja je u try catch bloku...?

 
Odgovor na temu

[es] :: .NET :: DropdownList i izbor vrednosti

[ Pregleda: 2403 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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