NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
lcet.m
Člen
Avatar
lcet.m:4.5.2013 14:45

Ahoj všem,

pěkně prosím o pomoc, brzo se zbláznim...

Mám v UpdatePanelu tři kontroly:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Not updated" ></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </ContentTemplate>
</asp:UpdatePanel>

a v kódu UserControlu takový setter:

public string Name
        {
            get { return Label1.Text; }
            set
            {
                Label1.Text = value;
                Literal1.Text = value;
                TextBox1.Text = value;

            }
        }

A teď to zajímavé - když při callbacku zavolám ten setter, text Labelu i Literalu se mi nastaví, ale TextBox zůstane stejný, tj. prázdný. Už nevím co s tím - všechno jsem všemožně překopal, ale prostě nevim :/

Díky

 
Odpovědět
4.5.2013 14:45
Avatar
lcet.m
Člen
Avatar
lcet.m:4.5.2013 14:57

Ty jo... Teď jsem udělal takovej zoufalej pokus:

public class WritableTextBox : TextBox
    {
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            //<input name="ctl00$MainContent$ctl01$ctl00$detail$TextBox1" type="text" id="MainContent_ctl01_ctl00_detail_TextBox1">

            writer.Write("<input type=\"text\" name=\"{0}\" id=\"{0}\" value=\"{1}\"/>"
                , ClientID
                , Text);
        }
    }

A to v pohodě funguje. Co nechápu? Nemám rád ASP.NET o_O

 
Nahoru Odpovědět
4.5.2013 14:57
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:4.5.2013 17:11

No koukám na to a mělo by to fungovat :D Si tam dej breakpoint a koukni co je v tom labelu po zavolání setteru. Případně si dej breakpoint přímo do setteru a koukni zas do labelu.

Nahoru Odpovědět
4.5.2013 17:11
New kid back on the block with a R.I.P
Avatar
lcet.m
Člen
Avatar
Odpovídá na David Hartinger
lcet.m:4.5.2013 18:13

Já taky myslím, že by to MĚLO fungovat, ale ne-e :) Mám to celý prokrokovaný odshora dolů, absolutně nemůžu přijít na zádrhel. Když si v Chromu dám "Zkontrolovat prvek", vidím, že ten input prostě nemá value. Span vygenerovaný z Labelu i prostý text z Literalu vypadají podle očekávání. Ani jsem podobný problém nevygooglil, tak jsem prostě úplně vedle.

Zatím použiju ten můj WritableTextBox, nemám čas přemlouvat ASP.NET k součinnosti :(

 
Nahoru Odpovědět
4.5.2013 18:13
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:4.5.2013 18:18

Tak tam zkusit dát ještě nějaký TextBox a nastavit oba, vyvstávají další možnosti, jestli to bude dělat u obou (ta horší) nebo jen u toho tvého (ta lepší, něco je s ním špatně). Když jsi to debugoval, co se tedy s hodnotou stane po provedení setteru, má jí? Nemůžeš tam vkládat nějaké divné znaky, co by rozhodily ten render?

Nahoru Odpovědět
4.5.2013 18:18
New kid back on the block with a R.I.P
Avatar
lcet.m
Člen
Avatar
lcet.m:4.5.2013 18:21

Divné znaky určitě ne, je to jen číslo.ToString(). Po nastavení setteru má TextBox.Text nastavenou hodnotu. Víc TextBoxů zkusím, to mi nenapadlo...

 
Nahoru Odpovědět
4.5.2013 18:21
Avatar
lcet.m
Člen
Avatar
lcet.m:4.5.2013 18:23

Víc TextBoxů taky nic. Nevim, jsem v koncích...

 
Nahoru Odpovědět
4.5.2013 18:23
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:4.5.2013 18:26

To není hezký, jestli spěcháš a máš workaround, tak to neřeš. Jestli se s tím chceš mordovat, založil bych nový projekt, tam plácnul TextBox a v code behind mu natvrdo dal nějakou hodnotu. Zkusil bych to a pak pomalu do projektu přidával tu funkcionalitu co vyvolává problém a čekal až to začne taky blbnout, zjistíš co to vyvolává.

Nahoru Odpovědět
4.5.2013 18:26
New kid back on the block with a R.I.P
Avatar
lcet.m
Člen
Avatar
lcet.m:4.5.2013 18:26

Bohužel, teď to nemám čas řešit. Ale určitě se k tomu později vrátím, to přece neni možný...

 
Nahoru Odpovědět
4.5.2013 18:26
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:4.5.2013 18:27

No pak napiš, zajímalo by mě co to způsobuje :)

Nahoru Odpovědět
4.5.2013 18:27
New kid back on the block with a R.I.P
Avatar

Člen
Avatar
:4.5.2013 18:58

A bez UpdatePanelu to funguje?

 
Nahoru Odpovědět
4.5.2013 18:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.