ASP.NET vlastni serverova komponenta a její vlastnosti – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

ASP.NET vlastni serverova komponenta a její vlastnosti – .NET – Fórum – Programujte.comASP.NET vlastni serverova komponenta a její vlastnosti – .NET – Fórum – Programujte.com

 

Pavel
~ Anonymní uživatel
383 příspěvků
5. 11. 2011   #1
-
0
-

Dobrý den,

mam nekolik vlastnich serverovych komponent pro ruzne druhy aut (BmwCar, SkodaCar, ...). A vsechny jejich vlastnoti ukladam ve viewstate a kdyz spustim serverovou udalost tak na strane serveru vidim vsechny jejich vlastnosti jak mam. A dale bych chtel vytvorit komponentu neco ve stylu vozovy park ktere dam list aut a komponenta vozoveho parku bude mit nejakou vlastnost ktera by mi mela vypsat vsechny auta a informace ktery jsem ji predal ale problem je ze jakmile pouziji vlastni komponenty v dalsi vlastni komponente jejich vlastnosti na strane serveru nejsou videt.

Nevite nekdo kde by mohl byt problem?

Dekuji za odpoved.

Nahlásit jako SPAM
IP: 89.233.158.–
6. 11. 2011   #2
-
0
-

#1 Pavel
Není mi jasné, o co se vlastně snažíš. Je ta "komponenta v komponentě" součástí životního cyklu stránky? Nepřistupuješ k vlastnostem dřív, než jsou načteny z viewstate?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Pavel
~ Anonymní uživatel
383 příspěvků
6. 11. 2011   #3
-
0
-

#2 djanosik


No proste jsem si udelal par vlastnich komponent ktery jsou potom ulozeny ve vlastnosti dalsi komponenty (seznam) a kdyz klidnu na tlacitko na strance tak chci pristupovat k vlastnostem tech komponent v tom seznamu ale zadny hodnoty tam nejsou

Nahlásit jako SPAM
IP: 89.233.158.–
6. 11. 2011   #4
-
0
-

#3 Pavel
To už vím, ale na základě toho nelze určit kde je problém. Aby u komponenty fungovalo viewstate musí být součástí hierarchie prvků (tj. musí být v kolekci Controls prvku, který je také v nějaké kolekci Controls).

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Pavel
~ Anonymní uživatel
383 příspěvků
6. 11. 2011   #5
-
0
-

#4 djanosik
no problem je ze v prvni komponente (treba komponenta1) mam radioButtonList a ten pridam do komponenty1:

protected override void CreateChildControls()
        {
            this.Controls.Add(new LiteralControl(this.Name));

            RadioButtonList list = new RadioButtonList();
            list.Items.Add(new ListItem("hodnota1", "hodnota1"));
            list.Items.Add(new ListItem("hodnota2", "hodnota2"));
            list.Items.Add(new ListItem("hodnota3", "hodnota3"));
            this.Controls.Add(list);

            base.CreateChildControls();
        }

kdyz tuto komponentu pridam na stranku a po pousbaku vidim vybranou hodnotu z radioButtonListu na serveru vse vporadku. Ale kdyz tuto komponentu1 ve stejne metode pridam dalsi komponente napr. komponeneta2 tak po postbacku uz v komponente1 hodnotu radioButtonListu nevidim:(

Prvky komponenete2 predavam v metode onPreRender pomoci verejne vlastnosti (MyCars).

Implementace komponenety2:

[DefaultProperty("Text")]
    [ToolboxData("<{0}:Parking runat=server></{0}:Parking>")]
    public class Parking : CompositeControl
    {
        public List<CompositeControl> MyCars = new List<CompositeControl>();

        protected override void OnInit(EventArgs e)
        {
            Page.RegisterRequiresControlState(this);
            base.OnInit(e);
        }

        protected override void CreateChildControls()
        {
            foreach (CompositeControl car in MyCars)
            {
                this.Controls.Add(car);
            }
        }
    }

Porad nevim kde by mohla byt chyba? vzdy je kazda komponenta v nejake kolekci Controls

Nahlásit jako SPAM
IP: 85.161.76.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý