Zdravím, narazil jsem na jednu záludnost při práci s textBoxem který je unvitř FormView. Na stránce přes kterou se přidávají příspěvky mám formView ve kterém je několik textboxů. Po jejich vyplnění a stisknutí tlačítka se provede vložení příspěvku do databáze. Potud vše funguje ok. Na vložení příspěvku mám napsanou pěknou stored proceduru která mi output parametrem vrátí info o tom zda byl příspěvek uložen. Pokud ne, řekne mi důvod (neexistující ID kategorie, článek se shodným jménem už někdo někdy vložil atd.) pokud příspěvek vloží, prozradí mi jeho ID. Tyto output parametry si v aplikaci odchytím a reaguji podle nich. To je také ok. A teď můj problém: pokud článek není vložen, informuju o tom uživatele, ale chci aby textboxy zůstaly vyplněné (aby to ten chudák nemusel psát znovu). Chtěl jsem to tedy řešit tak, že si data před odesláním uložím do viewState (data se tam v pořádku uloží, to mám ověřené). Jen nevím jak je mám nacpat zpátky do toho textboxu. Pokud totiž mám textbox který je volně na stránce, není problém mu nastavit vlastnost text na hodnotu načtenou z viewState. Pokud je ale textbox ve formView, dostanu se na něj následovně:
Dim txtAutor As TextBox = CType(FwNewPost.FindControl("txtAuthor"), TextBox)
Label1.Text=txtAutor.text
takto můžu číst jeho vlastnosti, když se ale pokusím nastavit vlastnost text, stejně zůstane prázdná:
Dim txtAutor As TextBox = CType(FwNewPost.FindControl("txtAuthor"), TextBox)
txtAutor.text=Label1.Text
Jdu na to uplně blbě nebo se jedná o nějakou záludnost? Napadlo mě že by to šlo řešit uplně jinak (např. že bych si před odesláním příspěvku poslal pomocí AJAXU požadavek na db abych zjistil, zda daný příspěvek bude vložen nebo ne) ale nechci začínat s AJAXem když se teprve učím ASP .NET
|