Diskuze: Jak provést stejnou věc pro sto věcí ve formuláři najednou.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
V php bych použil $("textBox".$i), ale jak na to v C#?
To se mi nezdá. Sestavovat jméno takhle je špatný přístup a musel bys použít např. reflexi, abys k checkboxu mohl přistupovat. Měl by sis dát textboxy do nějakého kontejneru (např. Panel) a poté proiterovat jeho pole Controls.
Možná ale potřebuješ spíše tabulku (třeba přes ListView/DataGrid), nějak si nedokáži představit případ, kde bys potřeboval tolik textboxů.
A ten kód cos označil jako PHP je nesmyslný.
Projeď všechny komponenty foreachem:
foreach (Control component in this.Controls)
Pak si můžeš zjistit jejich název
component.Name.Contains("textBox")
Nebo dosazuj ty čísla od 1 do 100.
A pak si to můžeš přetypovat na textBox a pracovat s tím.
component as TextBox
Ale minimálně by jsi si to měl dát do nějakého kontejneru.
Mám je v TableLayoutPanel. Prostě jsem chtěl string o délce 100 znaků rozdělit do pole o 100 prvcích a do každého ze sta textBoxů vložit jeden znak. Myslel jsem si, že to půjde nějak jednoduše, tak jako bych to udělal v php. Proč je ten kód nesmyslný?
Zkoušel jsi moje řešení?
Protože v php nepřistupuješ takto k html prvkům.
Musel bys použít javascript. Zavánělo to jQuery. To by bylo $("#textarea" +
i).html v php bys mohl přistupovat leda k poli nebo více proměnným
$pole['data' . $i]
Jednoduše to nejde, protože mít 1 znak ve 100 textboxech mi nepřijde jako standardní aplikace na kterou jsou jazyk nebo komponenty přizpůsobeny, co konkrétně chceš dělat?
Na kód jsem se špatně podíval, moje chyba 
Ano, myslel jsem to jako proměnnou, které bych změnil hodnotu.
Tvoje řešení jsem zkoušel, ale nic to nedělá. 
Proiteruj si kontroly toho kontejneru (místo Kontejner bude ten Panel1 nebo něco, v čem máš ty TextBoxy)
foreach (Control textBox in Kontejner)
{
((TextBox)(textBox)).Text = ....
}
Co konkrétně nic nedělá? Postupuj jak jsem uvedl. Nejdřív si vypiš
všechny komponenty daného kontejneru. Až je budeš mít tak si je vytřiď a
nech ať se vypisují pouze textboxy, které splňují ten zadaný název. Až
to budeš mít tak pak přistupuj k vlastnosti Text a tu modifikuj.
Pokud ti něco nepůjde napiš co konkrétně případně pošli ukázku
kódu.
Název bych nekontroloval, prostě si do něčeho vloží jen ty, se kterými chce pracovat.
Pokud si to dal do samostatného kontejneru jak jsme psali a nemá tam jiné komponenty, pak samozřejmě nemusí.
Mám to v TableLayoutPanel a v tom to nefunguje a píše to foreach statement
cannot operate on variables of type 'System.Windows.Forms.TableLayoutPanel'
because 'System.Windows.Forms.TableLayoutPanel' does not contain a public
definition for 'GetEnumerator'
Asi tam udělám 100× if else. Vím, že je to hrozné, ale jsem opravdový
začátečník a toto řešení je pro mě zatím dostačující. Díky za váš
čas. 
Bože né 
Tak se podívej do dokumentace:
http://msdn.microsoft.com/…ontrols.aspx
Poradili sjme ti a i jsme ti poslali kód. Když neřekneš co děláš ani
nepošleš co ti nefunguje, tak to je potom problém. Dej si tam 100 ifelse, ale
aby jsi se z toho pak nezbláznil 
Už jsem si psal skript, který mi to 100× vypíše abych to pak zkopíroval
do kódu.
Když v tom jsem
se podíval sem a na tu dokumentaci a zjistil, že tam za to "TableLayoutPanel"
musím dopsat ještě ".Controls". A funguje, je to přesně to, co jsem chtěl
a potřeboval. Nedělám nic konkrétního, jen jsem tak přemýšlel jak by se
to dalo udělat. Díky moc!!!
Zobrazeno 17 zpráv z 17.