Toon posts:

[ASP4.0] ListBox SelectedIndexChanged ClientSide afhandelen*

Pagina: 1
Acties:

Onderwerpen


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
Ik heb een listbox in mijn formulier welke serverside gevuld wordt met data. (ter info: selectionmode > single)
Als de gebruiker een van de items aanklik, wil ik wat additionele info van de keuze tonen maar zonder een postback te doen. Ik wil alles dus ClientSide afhandelen verder.

Hoe kan ik nu het OnSelectedIndexChanged event op de client afhandelen? Ik heb uiteraard autopostback op false gezet.

Ik dacht simpelweg een javascript functie aan te roepen door onderstaande code te gebruiken, maar dat pikt hij niet.
HTML:
1
2
<asp:ListBox ID="ListBox1" runat="server" SelectionMode="Single" AutoPostBack="false" OnSelectedIndexChanged="javascript:ListBox1_Change()">
</asp:ListBox>

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
Heb even met JQuery gepuzzeld en kwam op het volgende uit.

JavaScript:
1
2
3
4
5
$(document).ready(function () { 
    $('#<%= ListBox1.ClientID %>').change(function()
            { alert($('#<%= ListBox1.ClientID %>').val()); }
        );
    });


Het werkt. Maar is dit de juiste methode?

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:48

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Welke versie van ASP.net gebruik je? Kijk hier/hier/hier eens als je 4.0 gebruikt.

[Voor 35% gewijzigd door RobIII op 01-06-2011 15:21]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
ja ik gebruik 4.0. Wat je nu aangeeft zal ik eens bekijken.
Maar als we naast het ID eens kijken naar het koppelen van het event. Dat is wel de juiste methode?

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
Wil ik ook meteen even inspringen op het volgende issue.

De additionele info (zie 1e post) wil ik clientside oproepen. Ik zat eraan te denken om hiervoor een key-value pair te gebruiken.
De values van de items in de listbox zijn namelijk ID's. Dit ID kan ik als Key gebruiken.
Als de key voorkomt in de key-value pair, kan ik de value van de key-value gebruiken als additionele info.

Maar ik weet niet of er iets bestaat als een keyvalue pair in javascript.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wil je er ff op letten dat je niet dubbele posts achter elkaar plaatst binnen 24 uur? Je kan dan de http://tweakimg.net/g/forum/images/icons/edit.gif knop gebruiken :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:48

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

pdebie schreef op woensdag 01 juni 2011 @ 15:36:
Maar ik weet niet of er iets bestaat als een keyvalue pair in javascript.
Rocket science...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • 0Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 00:00
key-value pair 'probleem' opgelost met een array in de vorm van:

JavaScript:
1
var ListRemarks = {"1" : "opmerking bij 1", "4" : "opmerking bij 4" };


Deze wordt vanuit de code-behind gevuld.

Dit levert uiteindelijk het volgende op:
JavaScript:
1
2
3
4
5
6
7
8
9
$(document).ready(function () {
            var ListRemarks = <%= Remarks %>;
            $('#<%= ListBox1.ClientID %>').change(function () { 
                if(ListRemarks[$('#<%= ListBox1.ClientID %>').val()] != undefined)
                    $('#<%= lbl1.ClientID %>').text(ListRemarks[$('#<%= ListBox1.ClientID %>').val()]);                    
                else
                    $('#<%= lbl1.ClientID %>').text('');
            } );
        });


Nu enkel nog kijken naar de oplossing van RobIII met betrekking tot de ID's van de controls binnen de javascript. :)
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee