Nazdarek. Mám v jedné události cyklus foreach, který mi vytvoří proměnou a přídá ji hodnotu. Potřebloval bych tu proměnou mít i v jiné události??
Můžete mi někdo poradit jak na to?
Fórum › .NET
Proměná, mezi dvěma událostmi
Mám kód, který zindexuje obsah složky New a vytvoří potřebné komponenty. mezi nimi i LinkButton. A ten, když se stiskne má smazat nějakou složku ve složce New.
Mám tento kód:
foreach (DirectoryInfo DirectoryName in new DirectoryInfo(Server.MapPath("~/New/")).GetDirectories())
{
TableRow tr = new TableRow();
Table001.Controls.Add(tr);
TableCell td1 = new TableCell();
td1.CssClass = "Table002_001";
tr.Controls.Add(td1);
TableCell td2 = new TableCell();
td2.CssClass = "Table002_002";
tr.Controls.Add(td2);
Label Name = new Label();
Name.Text = DirectoryName.Name;
td1.Controls.Add(Name);
LinkButton Delete = new LinkButton();
Delete.Text = "Delete";
//
// něco, co zařídí smazání adresáře po stisknutí
//
td2.Controls.Add(Delete);
}
Nevím ale, jak po kliknutí smazat právě tu složku, ke které tento linkButton patří
A pokud by to šlo, tak to dělat přímo v té události a nevytvářet novou...
Tak mám globální proměnou string DirectoryName_;
a v tom foreach mám:
string DirectoryName_ = DirectoryName.Name;
a dále mám jinou událost a v ní:
string DirectoryName = (Server.MapPath("~/Reference/" + DirectoryName_));
System.IO.Directory.Delete(DirectoryName);
ale nic to nedělá... Pomozte mi prosím.. D9ky
Tak prvně musíš při dynamickém vytváření těch controlů říct, která metoda se provede při stisknutí. No a když se u všech těch prvků po stisknutí provede stejná metoda, tak bych to zkusil vyřešit pomocí parametru "sender" té metody. Tam se ti uloží objekt, přes který byl proveden stisk, tak si do toho objektu zkus uložit tu adresu a pak ji nějak po přetypování vytáhnout. Jinak mě zatím nic nenapadá.
Nějak to nechápu :-D
Vím že se to nemá, ale najde se taky človíček, který mi sem dal kousek kódu? ;-)
A přímo s té události by to nešlo??? a´ nemusím vyvářet novou. už tak jich tam mám hodně
Pokud se nemýlím, lze to udělat pomocí vlastnosti Tag toho tlačítka, tedy LinkButton.Tag. Této vlastnosti přiřaď jméno složky. Dále ještě v tom foreach cyklu nastav událost btn.Click.
Poté v metodě události, jež se vyvolá po stisku tlačítka Delete, přetypuj parametr sender na typ LinkButton (LinkButton btn = sender as LinkButton) a z vlastnosti btn.Tag se dozvíš jméno složky, kterou chce uživatel smazat.
Pokud tomu nerozumíš, běž radši do nejbližšího knihkupectví a pořiď si knížku o ASP.NET (v některých bývá vysvětlen i programovací jazyk) nebo o C# anebo nastuduj nějaký tutoriál o C# na internetu (zaměř se přitom na část o událostech).
To Petr Sýkora :
Class MujLinkButton:LinkButton
{
private String adresa;
public MujLinkButton():base()
{
adresa="";
}
public String Adresa
{
get
{
return this.adresa;
}
set
{
this.adresa=value
}
}
v tom foreach cyklu:
MujLinkButton Delete = new MujLinkButton();
Delete.Text = "Delete";
Delete.Adresa="nejakaAdresaNaDiskuNeboTakNeco";
Delete.Click+=new EventHandler(mazaciMetoda);//mazaciMetoda neco smaze
pak nekde jinde:
public void mazaciMetoda(object sender, EventArgs e)
{
MujLinkButton mujLB=(MujLinkButton)sender;
String adresa=mujLB.Adresa;
//kod, ktery smaze soubor na danne adrese
}
Nevim, jestli je to funkcni, nezkousel jsem, ale i kdyby ne, tak snad si to doopravis.
To je všechno moc dlouhý.... Něco kratšího. Takových věc už tam mám asi 10 a už jsem v kódu na 1866 řádku...
To je všechno moc dlouhý.... Něco kratšího. Takových věc už tam mám asi 10 a už jsem v kódu na 1866 řádku...
Error:
System.Web.UI.WebControls.LinkButton neobsahuje definici Tag
Mohly by jsmte mi prosím ten kód s tou třídou trochu víc popsat??? co který kód dělá, ...
Moc dík
Jak se dá smazat složka, která není prázdná??
To Petr Sýkora : No jestli programuješ ve Visual Studiu, tak se koukni do Object Browseru a najdi si tu třídu, která má na starosti práci se složkami, nebo si to vygoogli. Jinak, když nechápeš ten kód třídy, co jsem psal, tak asi bude lepší, když se nejdříve mrkneš na nějaké učební materiály, je to totiž základ, bez kterého se nikam nepohneš...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Komunikace mezi dvěma tlačítky — založil Barkas
C# primka mezi dvema body — založil Kryspin
Rozdíl mezi dvěma příkazy — založil Montezo
Počty mezi dvěma selectory — založil adosl
Rozdíl mezi dvěma zápisy — založil Tomáš
Moderátoři diskuze