InnerHTML   otázka

ASP.NET WebForms

Zdravim riesim taku trivialnu vec ale neviem si s nou dat uz rady. Cez asp.net generujem dynamicky HtmlTable kde nasledne skrz jquery pridavam do buniek <div> elementy. A chcem ich nasledne vycitat prikazom (priklad) Table.Rows[0].Cells[2].InnerHtml. Vzdy mi to ale vrati prazdny retazec. Ako ist nato aby mi to vratilo ten pridany element ?

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

Nechápete princip ASP.NET, nastudujte si to.

C# nebo VB.NET kód se spustí na serveru, vygeneruje nějaké HTML a to se pošle uživateli do prohlížeče. Teprve tam až se spouští nějaký javascriptový kód.

Pokud uživatel ve stránce klikne na něco, co způsobí postback (Button, LinkButton, ImageButton aj.), stránka se odešle na server. Ale odesílají se jen formulářová pole, tj. viestate a to, co se vyplnilo do komponent. Pokud kus HTML stránky změníte, tak se o tom server a tedy C# kód pochopitelně nedozví a proto to tam nevidí.

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

Ach toho som sa obaval :( A nejaky napad ako to vyriesit ?

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

Čeho přesně se snažíte dosáhnout?

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

Mam vygenerovanu HmlTable kde pomocou drag&drop vkladam div elementy do buniek a chcem po ulozeni tieto elementy ulozit.

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

Tak si do nějakého skrytého pole v javascriptu ukládejte a při postbacku si to z něj přečtěte.

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

No budem to musiet nejako tak obist. Dakujem za radu.

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

Hm teraz to skusam. Generujem dynamicky HiddenField a cez javascript do value vkladam hodnotu ale ani to vlastne nemoze ist. Som uz z toho zufaly kks :D

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

Proč by to nemohlo jít? To samozřejmě jde, akorát si pro hodnotu v tom hiddenfieldu musíte sáhnout přes Request.Form.

Není lepší si do stránky dát jeden HiddenField a ten stav ukládat do něj? Všechno do jednoho pole.

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

Ano skusal som aj to ale aby sme sa chapali ked vlozim staticky jeden hiddenfield tak to ide aj ked tam javascriptom doplnim hodnotu do value. Ale je to nefunkcne ked si ten hiddenfield dynamicky vygenerujem v c#.

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

Ale funguje to, jen ty hodnoty musíte číst z kolekce Request.Form, určitě tam někde jsou.

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

Hm ide to ale ja som to pridaval ten hiddenfield priamo do bunky tabulky. Ked ho pridam mimo tabulky tak to funguje.

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

A nepřepsal jste si ho potom nějak?

Ono je totiž úplně jedno, kde ten hiddenfield je, jestli v tabulce, nebo mimo.

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

ja fakt neviem ale ked to skusam pridat do kolekcie Controls v HtmlTableCell tak to nejde ale ked to bachnem kdesi do PlaceHolderu tak to ide...

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

Jo počkat, vy jste je tam generoval v C#? Tak to pozor, pokud generujete nějaké komponenty na serveru, tak je musíte vygenerovat při postbacku znovu a přesně stejně, jak byly - do ViewState se ukládají jen hodnoty vlastností, ale už ne to, že v HtmlTable je nějaký HiddenField.

Pokud budou sedět IDčka nebo alespoň pořadí komponent, tak se načte i ViewState, ten ale v tomto případě nepotřebujete.

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