» »

C# dodajanje komponet v runtimu-še eno vprašanje

C# dodajanje komponet v runtimu-še eno vprašanje

greentech ::

Imam še eno vprašanje glede dodajanja kontrol v runtime-u. Ko dodam kontrolo, se podatki o tej kontroli zapišejo v neko tabelo v bazi. Seveda je potrebno vsako kontrolo ob dodajanju tudi poimenovati. Zanima me pa kako naredim, da bodo kontrole, ki jih dodajam vsaka drugače poimenovane. To je pomembno zato ker imam neko koledar kontrolo, kjer se mi prikazujejo neki dogodki. Če je ta koledar kontrola ob vsakem dodajanju enako poimenovana se mi dogodki, ki jih dodajam prikažejo na vseh koledar kontrolah, ki sem jih dodal,zato bo moral imeti vsak unique ime(trenutno ime kontrole je dayview):

Calendar.DayView dayview = new Calendar.DayView();

Kako naredim da mi zraven imena dayview doda še recimo nek id ki ga prebere iz baze,tako da bo ime unique.

Mislil sem da bo delovalo če bom dal recimo:

string dayview= String.Concat("dayview",(maxid+1).ToString()); //maxid se prebere z baze(zadnji dodan id v tabelo)
dayview.Name = dayview;

Vendar to ne deluje, ker je zgleda to samo ime, ki ga zazna kot string ne pa kot dayview kontrolo.

Torej, kako dosežem da bo vsak dayview kontrola imela unique ime. Mislim, da bi moral to ime določiti že pri deklaraciji kontrole:

Calendar.DayView dayview = new Calendar.DayView();

Upam da sem bil dovoj jasen in da mi bo lahko kdo pomagal.

Hvala in LP

Grega

greentech ::

A mi glede tega res ne zna kdo pomagat...vem da sem napisal celo klobaso,samo drugače nisem znal razložit..pa res bi bil hvaležen za vsak namig...

Hvala in LP Grega

Matako ::

Mislim, da delaš v napačni smeri. Verjetno želiš delati s poljubnim številom teh DayView? Daj jih v nek seznam!

recimo ...


System.Collections.ArrayList list = new System.Collections.ArrayList();
Calendar.DayView dayview = new Calendar.DayView();
dayview.Name = "foo";
list.Add(dayview);


No zdaj imaš v seznamu 'list' en objekt tipa DayView. Zelo verjetno boš kasneje delal kaj na temo:


// Pazi, da so v seznamu samo objekti tipa DayView ali izpeljani.
foreach (Calendar.DayView dayview in list) {
if (dayview.Name == "foo") {
// kar nekaj
}
}


Seveda lahko uporabiš tudi polja oziramo karkoli podobnega.
/\/\.K.

Zgodovina sprememb…

  • spremenil: Matako ()

greentech ::

Hvala za pomoč..neke stvari sem rešil z tem...vendar še zmeraj ne vem kako naj programu povem na kateri dayview kontroli se naj mi prikazujejo dogodki. Imena se generirajo dinamično in jih je lahko nemoejeno število, zato primerjanje vrste:

if (dayview.Name ="foo")

ne pride v poštev, ker ne vem vnaprej kako bo ime dayview kontrole in koliko jih bo. Vendar bi bilo potrebo vseeno napisat neko logiko,da bi program vedel na katero dayview kontrolo naj dodaja dogodke.

Ima kdo kakšno idejo?

Hvala in LP

Grega

Zgodovina sprememb…

Matako ::

Hja ideja je v bistvu vedno ista: rabiš neko referenco, ID po domače, na katerega se sklicuješ.
Skratka - ko neko stvar kreiraš jo moraš označiti po nekem sistemu, da jo boš lahko spet našel. To je to, kar sem hotel povedati v mojem primeru - Name = "foo" je samo za ilustracijo.

Zdaj verjetno nisem dobro razumel, samo praviš, da ne veš kako naj poveš programu kateri DayView je tisti, ki naj se uporablja za prikaz? Ker ravno to sem hotel pokazati s primerom zgoraj...


// v name shrani ime objekta za prikaz ...

foreach (Calendar.DayView dayview in list) {
if (dayview.Name == name) {
DoSomethingToShow(dayview);
// nasli smo ga, ni treba iskati naprej
break;
}

}


Samo verjetno to ni to kar si mislil, mi pa nekaj pravi... da hodis okrog te ideje ;)
/\/\.K.

Zgodovina sprememb…

  • spremenil: Matako ()

greentech ::

Ja saj načeloma je zo ideja ki sem jo imel v mislih...samo problem je v tem, ker teh dayview kontrol bo na formi recimo 5,6 al pa 7 al pa več al pa manj ...odvisno od uporabnika, ker njemu bo omogočeno, da bo sam dodajal v program te kontrole..zato me malo bega glede tega poimenovanja...ker jaz ne bon vnaprej vedel kako točno se bodo te kontrole imenovale in koliko jih bo...torej tudi ne morem delat teh preverjanj,ker niti ne vem koliko jih narediti...če bi recimo vedel da bom imel 3 te dayview kontrole in bi za vsako vedel ime, ne bi bil problem...v tem primeru pa ne vem kako to rešit.

Matako...imaš mogoče še kako idejo..ali pa kdo drug?

Hvala in LP

Grega

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[ASP.NET] Prenos podatkov iz ene spletne strani v drugo

Oddelek: Programiranje
14866 (725) Cvenemir
»

DataView, DataTable, DataSet

Oddelek: Programiranje
91088 (839) detroit
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61042 (918) detroit
»

C# print

Oddelek: Programiranje
111180 (883) delfy
»

[C#] calendar komponente

Oddelek: Programiranje
51214 (1094) noraguta

Več podobnih tem