Nelze nalézt komponenty v CodeBehind   zodpovězená otázka

ASP.NET WebForms

Zdravím, ve svém projektu jsem se setkal se zvláštní chybou. Když chci použít v CodeBehind název komponenty na stárnce, která je uvnitř FormView, tak to nelze. Název to modře podtrhne a chová se, jako by neexistovla, přitom existuje.

Např. toto je EditTemplate FormView

 <EditItemTemplate>
                      <asp:FileUpload runat="server" ID="FileUpload1" /><br />
                            <asp:Button runat="server" ID="btnSave" OnClick="SaveToTheDatabase" Text="Upload picture" /><br />
                            <asp:Label ID="Label1" runat="server" Text="Picture will be displayed after you save changes."></asp:Label>
                            <asp:Label ID="lblMessage" runat="server" EnableViewState="false" ForeColor="Red" />
                </EditItemTemplate>

V CodeBehind chci například toto:

lblMessage.Text = "Picture uploaded successsfully !"

Ale jak jsem již psal, komponentu to nenajde. Pravděpodobně se jedná o nějaký bug visual studia. Hledal jsem různá řešení, ale zatím mi nic nepomohlo. Když jsem to chtěl vyřešit takto (našel jsem jako možné řešení), označilo to samotný kód jako špatný:

Label lb = FormView1.FindContro("lblMessage")

Dále jsem zkoušel vymazat VS Cache. Taky neúspěšně.

Nevíte někdo, jak tento "bug" opravit?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je komponenta vnořena do "nějakého" kontejneru (repeater,..),tak je třeba ji vyhledat právě pomocí FindControl metody. Již se to zde několikrát řešilo a určitě je částečný hint i v rámci videotutoriálu na MSTV

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky, měl jsem se na FindControl metodu podívat. Je tu o tom i článek - http://vbnet.cz/blog-clanek--314-net_tip...

Jinak použil jsem to takto:

Dim txt As Object = DirectCast(FormView1.FindControl("TextBox1"), TextBox)

txt.Text = "Ahoj :-)"

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback