Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript

[es] :: .NET :: ASP.NET :: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript

[ Pregleda: 3735 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kopca

Član broj: 14307
Poruke: 118
*.metrohive.net.



Profil

icon Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript14.10.2005. u 16:58 - pre 225 meseci
Imam sledeci isecak koda u asp serverskoj kontroli - gridu:

Code:
<asp:TemplateColumn>
                        <ItemTemplate>
                            <asp:TextBox ID="txt1" Runat="server">text</asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateColumn>


Ovo je _ItemCreated event.

Code:
private void OrdersDBGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {    
            switch (e.Item.ItemType)
            {
                case ListItemType.Header:
                    break;
                case ListItemType.Footer:
                    break;
                case ListItemType.Pager:
                    break;
                case ListItemType.Separator:
                    break;
                default:
                    IEnumerator en = e.Item.Cells[6].Controls.GetEnumerator(); 
                    while (en.MoveNext())
                    {
                        if ((en.Current is TextBox))// && ((TextBox)en.Current).ID=="txt1")
                        {
                            ((TextBox)en.Current).Attributes.Add("onBlur","alert('" +  ((TextBox)en.Current).ClientID.ToString() +"')");
                        }
                    }
                    break;    
                
            }
            L_Error.Text = ordersDB1.ErrorMessage;
        }


Kad gledam krajnji HTML u Exploreru - View Source - dobijam za textboxove sledece ID-ove za inpute napravljene od txtboxova:

Code:
 id="OrdersDBGrid__ctl12_txt1" i 


i za name:

Code:
name="OrdersDBGrid:_ctl12:txt1"


Moja pitanja:

1. Kako da dodjem do punog klijentskog ID slaganjem ClientID eva kroz stablo kontrola - treba mi da bih u svaki pojedinacni input ubacio JavaScript "onBlur"?
2. Cemu sluzi name, a cemu ID?
3. Zasto se u ID pojavljuju donje underscore-ovi a u name i ":"?
kopca
 
Odgovor na temu

majstor_01

Član broj: 60008
Poruke: 63
*.air.my-its.net.



Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript14.10.2005. u 20:33 - pre 225 meseci
Bez potrebe si izkompilovao kod...
Ako ti je textBox ID = "Txt"
Onda ides

TextBox tb = (TextBox) e.Item.Cells[6].FindControl("Txt")'
tb.Attributes.Add("onBlur","alert('" + tb.ClientID+"')");

ID je za jedinstveno prepoznavanje na strani klijenta.
Name je za stranu servera i mora da postoji kod serverski kontrola. HTML kontrole nemaju Name.


[Ovu poruku je menjao majstor_01 dana 14.10.2005. u 21:35 GMT+1]
 
Odgovor na temu

kopca

Član broj: 14307
Poruke: 118
*.metrohive.net.



Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 12:23 - pre 225 meseci
Citat:
Moja pitanja:

1. Kako da dodjem do punog klijentskog ID slaganjem ClientID eva kroz stablo kontrola - treba mi da bih u svaki pojedinacni input ubacio JavaScript "onBlur"?


Hvala na odgovoru. Ali jos nisam resio svoju glavnu dilemu... Iz citata.
kopca
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 12:51 - pre 225 meseci
Pa ClientID je valjda "pun" klijentski ID...
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 13:11 - pre 225 meseci
Ako ne znaš koji će ti idovi biti izgenerisani, a želiš da ubaciš onblur na svaki input, postaviš JS na stranicu...
Code:
<script>
window.onload = function ()
{
    var inputs = document.getElementsByTagName ('INPUT');
    for (var i = 0; i < inputs.length; i++)
    {
        inputs [i].onblur = inputblur;
    }
}
function inputblur ()
{
    //  štogod
}
</sctipt>

 
Odgovor na temu

kopca

Član broj: 14307
Poruke: 118
*.metrohive.net.



Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 13:34 - pre 225 meseci
Ok je to resenje... Samo to je alternativa. Mene bas interesuje kako na serveru to uz pomoc C# da uradim, tj. kako ASP.NET pravi klijentski ID nesto_nesto:_nesto... Jer .ClientID nije "pun" naziv. Pun naziv se stvara od stabla kontrola kojem pripada taj txtbox. Pokusajte da simulirate to na nekoj strani, pa cete videti. A i napisao sam u prvom pitanju sa kodom kako tacno izgleda jedan id u krajnjem HTML-u. U Exploreru - View Source...
Cini mi se da ima veze sa kontejnerima kontrola...

Citat:
Code:
id="OrdersDBGrid__ctl12_txt1" i

kopca
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 14:37 - pre 225 meseci
Naravno, klijentski ID je sastavljen od "putanje" po kontejnerima (isključivo iz razloga da bi ID bio jedinstven kad se stranica izrenderuje). ClientID ima isti sadržaj (da, probao sam).

Moj savet ti je da se ne ulaziš u to šta ClientID sadrži. Ako imaš potrebe za javascriptom, koristi ClientID i to će raditi.

Najbolje da tačno napišeš šta hoćeš, odnosno da okačiš deo koda koji ti ne radi to što hoćeš da radi.

edit: nedvosmislenost

[Ovu poruku je menjao jablan dana 17.10.2005. u 15:52 GMT+1]
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 14:43 - pre 225 meseci
Code:

private void Repeater1_ItemDataBound(object sender,
 System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
    TextBox tb = new TextBox();
    tb.ID = "tb";
    e.Item.Controls.Add(tb);
    tb.Attributes.Add("onblur", "alert('" + tb.ClientID + "')");
}
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 14:48 - pre 225 meseci
Ili, ako su ti u templejt već ubačeni tekst boksovi:
Code:

private void Repeater1_ItemDataBound(object sender, 
 System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
    TextBox tb = (TextBox) e.Item.FindControl("t");
    tb.Text = e.Item.DataItem.ToString();
    tb.Attributes.Add("onblur", "alert('" + tb.ClientID + "')");
}

OK?
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript17.10.2005. u 16:10 - pre 225 meseci
Citat:
kopca: 2. Cemu sluzi name, a cemu ID?

Sve je ovo na klijentu :-)

Atribut name je identifikacija elementa formulara... Prilikom prosleđivanja formulara serveru šalju se parovi name-value za one elemente koji imaju name atribut - radi primera, na Submit dugme ne stavljam name jer mi to nije potrebno za serversku obradu.

Atribut id bi trebalo da bude jedinstven obeležje elementa u dokumentu.
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Klijentski ID pravljeni od kompozitnih ASP.NET ugnjezdenih kontrola i JavaScript

[ Pregleda: 3735 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.