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

1
2
3
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.

1
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:

1
DL1.Visible = False

ale

1
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é:

1
2
3
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

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