ASP.Net dinamicke user kontrole

poruka: 11
|
čitano: 2.296
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
ASP.Net dinamicke user kontrole

Ovako,

 

imam problem...

 

Na stranicu dinamicki dodajem user kontrolu koja se sacinjavaja od par labela, slika, u pozadini vrsi spajanje na bazu, nekakve checkove... da ne nabrajam dalje

 

Trebao bi moci dodavati vise istih kontrola koje ce se punit sadrzajem ovisno o parametru koji im proslijedjujem (nekakav ID iz baze)...

 

Problem je sto ne mogu proslijedjivati taj parametar ID kontroli ma sta god pokusao...

 

Pokusa sa sa LoadControl("/kontrola.ascx?id=xxx") ne ide

Pokusao sam sa Sessionom proslijedjivati kontrolu ali negdje je bug i sve kontrole mi hvataju zadnji ID koji proslijedim...

 

Ako tko ima kakvu ideju kako da ovo odradim bio bih mu jako zahvalan!

I'm going woo woo
 
0 0 hvala 0
17 godina
protjeran
offline
RE: ASP.Net dinamicke user kontrole

Pa možda griješim, al nije li praksa da se u takvim situacijama stavi public property kojeg češ čuvati u ViewState-u.

Mislim da ti je Session loša ideja jer svaka kontrola bi trebala imati svoj jedinstveni SessionID.

Nešto ovako,

 

UserControl c1 = (UserControl)  control = LoadControl("UserControl.ascx");
c1.IDUBazi = 101;
// Dodavanje u nki kontejner kontrola
Controls.Add(c1);

 

Ovo ide u ascx.cs

 

public int IDUBazi

{

   get{

return (int) ViewState["MojID"]

}

set

{

  // Podešavanje kontrola unutar UserKontrole

Label1.Text = "Some unique Value1"

Label2.Text = "Some unique Value2"

 

   ViewState["MojID"] = value;

}

 

}

 

}

 

E da, ako se dobro sjećam, nekada chachiranje User Kontola zna zafrkavati.

Programko http://programko.bloger.hr
17 godina
offline
ASP.Net dinamicke user kontrole

Pokusao sam i sa public propertyem, ali sam ocito zaboravio ovo sa viewstateom...

 

budem pokusao...

 

session i nije losa ideja jer mi se treba cuvati cisto do pozivanja kontrole, dakle do prihvata parametra kojeg proslijedjujem, dalje me taj parametar ne zanima...

 

u svakom slucaju budem pokusao pa javim rezultat... hvala!

I'm going woo woo
 
0 0 hvala 0
17 godina
neaktivan
offline
ASP.Net dinamicke user kontrole

Probaj s viewstate-om.

Takodjer, umjesto user kontrola, poigraj se sa CompositeControl i CompositeDataboundControl klasama, mozes napraviti custom kontrole koje se potpuno mogu zapakirati u dll :)

 
0 0 hvala 1
17 godina
offline
ASP.Net dinamicke user kontrole

Hmmm nisam bas siguran... kod bi isao ovako:

 

foreach (DataRow myDR in myTable.Rows)

{

Viewstate.Add("id", myDR["id"].toString()) ;

Control myControl = LoadControl(<path to ascx>);

myPlaceHolder.Controls.add(myControl);

}

 

Znaci ovo bi trebalo sljakat?

I'm going woo woo
 
0 0 hvala 0
17 godina
protjeran
offline
ASP.Net dinamicke user kontrole

Mislim da ti to neće raditi, jer ako se ne varam vaka kontrola treba čuvati svoj ViewState, a u ovim snippetu nedostaje ti varijabla za iniciranje User kontrole

Programko http://programko.bloger.hr
 
0 0 hvala 0
17 godina
offline
ASP.Net dinamicke user kontrole

Napamet sam ovo kucao... 

 

pokusat cu kad dodjem kuci nesto iskemijat... 

 

samo mi nije jasno zasto mi session ne hvata...

 

Vjerovatno ovaj prije odvrti petlju (i izmijeni session) nego sto IIS izvrti i posluzi kontrolu...

 

 

 

 

EDIT: ne radi

 

//codebehind od Default.aspx.cs

 

ViewState.Add("mytempid", "");

     for (int i = 1; i < 5; i++)

     {

       ViewState["mytempid"] = i.ToString();

       Control myControl = LoadControl("Kontrola.ascx");

       myPH.Controls.Add(myControl);

     }

 

 

//ovo je code od Kontrola.ascx

 

protected void Page_Load(object sender, EventArgs e)

   {

     asas.Text = ViewState["mytempid"].ToString();

     asasa.Text = ViewState["mytempid"].ToString();

   }

 

 

 

Dakle kod iz kontrole ne vidi viewstate:

Object reference not set to an instance of an object.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

I'm going woo woo
Poruka je uređivana zadnji put pon 22.2.2010 12:34 (tnakir).
 
0 0 hvala 0
17 godina
offline
ASP.Net dinamicke user kontrole

Pokusao sam i sa ViewStateom...

 

Glavna stranica (Default.aspx.cs) uopce ne vidi clanove kontrole ASCX...

 

mislim da je problem dinamicko dodavanje kontrola...

I'm going woo woo
 
0 0 hvala 0
17 godina
offline
ASP.Net dinamicke user kontrole

Evo da ne brljim dalje: rijeseno preko atributa:

 

Default.aspx.cs:

for (int i = 1; i < 5; i++)

     {

       UserControl myControl = (UserControl)LoadControl("Kontrola.ascx");

       myControl.Attributes.Clear();

       myControl.Attributes.Add("tempid", i.ToString());

       myPH.Controls.Add(myControl);

     }

 

 

Kontrola.ascx.cs:

protected void Page_Load(object sender, EventArgs e)

   {

     asas.Text = this.Attributes["tempid"].ToString();

     asasa.Text = this.Attributes["tempid"].ToString();

   }

I'm going woo woo
 
0 0 hvala 0
17 godina
neaktivan
offline
ASP.Net dinamicke user kontrole

Pogledaj malo ASP.NET page lifecycle..ne dogadja se sve u Page_Loadu :))

 
0 0 hvala 0
17 godina
offline
ASP.Net dinamicke user kontrole

Ma znam cikluse... :)))) , ali mi je problem sa viewstateom to raditi... preko atributa mi je to najjednostavnije napraviti... pogotovo mi je problem sa viewstateom ako tu bude poprilican broj itema... bude se tu svasta zbrljalo!

I'm going woo woo
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice