Viditelnost tlačítka ve FormView   zodpovězená otázka

ASP.NET WebForms

Ahoj. mám na stránce jeden Formview ve kterém jsou tři tlačítka - Nový, Upravit a Smazat. každé tlačítko má své ID - newbutton, editbutton a deletebutton. Když ale do kódu této stránky napíšu

        If Roles.IsUserInRole("admin") Then
           deletebutton.Visible = false
        End If

Napíše mi to, že tento prvek s názvem "deletebutton" neexistuje.

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

K ovládacím prvůkm uvnitř šablon (ItemTemplate, EditItemTemplate atd.) nemůžete přistupovat přímo, musíte použít funkci FindControl.

    CType(FormView1.FindControl("DeleteButton"), Button).Visible = False

CType objekt přetypuje Button, FindControl totiž vrací typ Control, aby to fungovalo pro všechny komponenty. V tomto případě by to zrovna být nemuselo, protože vlastnost Visible je zděděná z Control.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mám stejný problém v DataListu a ani Váš řádek nefunguje:

Object reference not set to an instance of an object

Ve stejném místě kódu funguje pouze toto:

DL1.Visible = False

ale

CType(DL1.FindControl("LButton1"), LinkButton).Visible = False

ne.

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

Asi jsem to našel. Ono to takhle jednoduše asi nejde.

Ale tenhle kód už je funkční (týká se datalistu, což bude asi ve formview stejné:

For PEach item In DL1.Items
                CType(item.FindControl("LButton1"), LinkButton).Visible = False
            Next

A máš tam ode mne schválně jednu chibku ;-)

nahlásit spamnahlásit spam 0 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