Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.787 pregleda

Najnovija ↓

Dodavanja novih kolona u GridView preko IF-a 01.03.2008. u 17:36 · pre 227 meseci #1
Zdravo
Zanima me da li je moguce da se dodaju nove kolone u GridView ukoliko se izvrsi odredjeni IF statment
Npr
Imam jedan GridView koji vuce podatke iz tabele artikli.
ispod imam jednu dropdownlistu koja je autopostback i pri promeni vrednosti se aktivira dogadjaj

protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
string uspeh = "";
string uspeh1 = "";
string uspeh2 = "";

if (ddl.SelectedValue == "1")
{
SqlDataSource1.SelectCommand = "SELECT * FROM ViewFrizidera";
uspeh = "SELECT * FROM ViewFrizidera";

}
if (ddl.SelectedValue == "2")
{
SqlDataSource1.SelectCommand = "SELECT * FROM ViewVitrine";
uspeh1 = "SELECT * FROM ViewVitrine";
}
if (ddl.SelectedValue == "3")
{
SqlDataSource1.SelectCommand = "SELECT * FROM ViewKlime";
uspeh2 = "SELECT * FROM ViewKlime";
}

if (uspeh != null)//ukoliko je prosao prvi IF onda ce se ovaj IF izvrsavati
{
// ovde treba da stoji kod koji dodaje novu kolonu u GridView, ukoliko je ispunjen gornji uslov

}

Citava situacija ide ovako. SqlDataSource1 vuce podatke iz tabele artikli. Kada se izabere prva vrednost (1) iz dropdownliste treba da se taj SqlDataSource1 promeni u odgovarajuci View, koji vuce iste podatke, sa nekim novim kolonama (koje treba da se dodaju u gridView, kako bi se videle)
Sve savrseno funkcionise, ali ne znam kako da prilikom izvrsavanja odredjenog IF-a dodam tu novu kolonu (iz View-a) u GridView?

Hvala unapred
Ivana
Potpis
Listen very carefully, I shall say this only once!
Re: Dodavanja novih kolona u GridView preko IF-a 03.03.2008. u 14:40 · pre 227 meseci #3
Bez testiranja...

if (uspeh != null)//ukoliko je prosao prvi IF onda ce se ovaj IF izvrsavati
{
// ovde treba da stoji kod koji dodaje novu kolonu u GridView, ukoliko je ispunjen gornji uslov
DataTable dt = dal.Get_TableViewProdukti(uspeh) // Poziv za tvoju metodu u DataAccessLayer-u (dal)

for each(datarow r in dt.rows)
{
foreach(datacolumns c in datatable.columns)
{
BoudField column = new BoudnField();
c.DataField = c.ColumnName.ToString();
c.ItemStyle.Wrap = false;
tvojGridView.Columns.Add(c)

}
}
}

Ti u loopu mozes probati dodati/menjati osobine kolone po zelji ili potrebi (npr. SortExpression). Ponavljam ovo je bez testiranja. Nadam se da ce biti od pomoci.
Re: Dodavanja novih kolona u GridView preko IF-a 03.03.2008. u 18:17 · pre 227 meseci #4
izvini ako je ovo glupo pitanje, ali kako da znam sta je kod mene taj "dal" - DataAccess Layer? Gledala sam po netu i sve mi izbacuje neke primere za windows aplikacije, preko DataSet-a... Nisam naglasila da je ovo asp.net aplikacija 3.5framework... :S
Potpis
Listen very carefully, I shall say this only once!
Re: Dodavanja novih kolona u GridView preko IF-a 04.03.2008. u 10:12 · pre 227 meseci #5
Moja greska... Nema glupih pitanja, samo glupih odgovora =). Malo sam nepromisljeno i na brzinu odgovorio. Iskreno, nisam ni video da je u pitanju SqlDataSource... Ja sam u brzini napisao kod za dodavanje kolone "na stari nacin"...

SqlDataSource bi trebao "sam" (na osnovu vrednosti u SqlCommand) da poveze odgovarajuci skup produkata. Cini mi se da bi ti jedino trebala u "IF (uspeh != null) " delu tvog scripta ponovo dodeliti ovaj put "promenjeni" SqlDataSource1 i ponovo pozvati "DataBind()" metodu. To bi trebalo da izgleda otprilike ovako:

if (uspeh != null)//ukoliko je prosao prvi IF onda ce se ovaj IF izvrsavati
{
// ovde treba da stoji kod koji dodaje novu kolonu u GridView, ukoliko je ispunjen gornji uslov
TvojGridView.DataSourceID = SqlDataSource1.ID
TvojGridView.DataBind()
}


To bi trebalo da pokaze odgovarajuce produkte sa svojim kolonama. Ja sam malo radio sa SqlDataSource tako da ne mogu da garantujem nista ali se nadam da ce ovo biti od koristi.
Re: Dodavanja novih kolona u GridView preko IF-a 04.03.2008. u 13:27 · pre 227 meseci #6
Hvala ti puno na odgovoru, mnogo mi je pomoglo. Sve sto sam trebala jos uraditi jeste da promenim osobinu GridViw-a "AutoGenerateColumns" da bude true, i sve radi super :)

Jos jednom hvala i pozdrav!
Potpis
Listen very carefully, I shall say this only once!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme