login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Auto Open ComboBox - ASP.NET AJAX Control Toolkit

Offline Gio - 17/10/2016 18:05
Avatar van GioNieuw lid Beste,
Zou het mogelijk zijn om een ComboBox automatisch te openen bij het opstarten van mijn webpagina?
Ik kan maar geen oplossing vinden.
Dank bij voorbaat.
Gio


9 antwoorden

Gesponsorde links
Offline Thomas - 17/10/2016 18:53
Avatar van Thomas Moderator Wat is een combobox en waarschijnlijk wel met JavaScript?
Offline Gio - 17/10/2016 19:09
Avatar van Gio Nieuw lid Een Combobox is te vergelijken met een DropDownList.
De DropDownList zit in de standard toolbox van mijn Microsoft Visual Studio.
Terwijl de ComboBox uit AJAX Control Toolkit komt zie: (http://www.ajaxcontroltoolkit.net).

Ik dacht ook aan JavaScript maar dat wil mij niet lukken.Zelfs niet na veel geGoogled.

Vraagje: is het mogelijk om bij een vraag ook een klein deel van een printscreen te plaatsen, om op die manier een vraag te verduidelijken?
Groet Gio
Offline Thomas - 18/10/2016 13:13
Avatar van Thomas Moderator
Citaat:
is het mogelijk om bij een vraag ook een klein deel van een printscreen te plaatsen
Niet rechtstreeks, wel indirect. Plaats een hyperlink naar een externe bron/website.

Wat versta je trouwens onder "automatisch openen bij het opstarten van de webpagina". Bedoel je in een popup of overlay? En deze combobox is op dit moment (dus?) nog een soort van verborgen element wat je normaal gesproken tevoorschijn kunt halen door een bepaalde interactie (drukken op een knop oid)?

Met bepaalde JavaScript libraries kun je events simuleren (maar zonder moet ook kunnen lijkt mij) dus als je een listener aan een knop hebt hangen die de combobox opent als er op geklikt wordt zou je wellicht de muisklik kunnen simuleren? Bijkomend voordeel is dan dat dit minimale impact heeft op bestaande code.
Offline Gio - 18/10/2016 14:17
Avatar van Gio Nieuw lid Dank voor uw antwoord Thomas, fijn dat je met mij meedenkt.
Let op: ik ben een amateur programmeur, geen prof. 
Dus: is geen popup of overlay en ook geen verborgen element.
Stel je een Combobox (of DropDownList) voor met een namen van leerlingen. Ik moet op het bijbehorend knopje klikken om de namen te zien. Vanaf dat moment kan ik een naam kiezen. En dat werk wel en is ok.
Maar dat ik op het knopje "moet" klikken wil ik nu overslaan en dus automatiseren.
De namen van de leerlingen moeten onmiddellijk zichtbaar zijn.
Jij suggereert JavaScript of JavaScript libraries die een muisklik kunnen simuleren, maar ik heb geen resultaten.
Ik zal verder zoeken naar JavaScript libraries en uitproberen, hopelijk kom ik iets tegen dat bruikbaar is.
Groet,
Offline Thomas - 19/10/2016 14:16
Avatar van Thomas Moderator Gegeven de volgende constructie met jQuery:
  1. <!DOCTYPE html>
  2. <meta charset="UTF-8">
  3. <!-- use content delivery network (CDN) for loading jQuery -->
  4. <script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
  5. <title>test</title>
  6. </head>
  7.  
  8. <button type="button" id="myButton">click me</button>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. $().ready(function() {
  12. $('#myButton').click(function(e) {
  13. // do stuff, like open combobox
  14. alert('hello');
  15. });
  16. });
  17. //]]>
  18. </body>
  19. </html>


Het enige wat je hoeft te doen om het click-event te simuleren is het toevoegen van de volgende code voor de </body> tag:
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. $().ready(function() {
  4. $('#myButton').trigger('click'); // simulate click event
  5. });
  6. //]]>
Offline Gio - 19/10/2016 15:18 (laatste wijziging 20/10/2016 10:23)
Avatar van Gio Nieuw lid In jouw voorbeeld, met een button, werkt het goed.
Ik heb de code gewijzigd en een NamenLijst bijgeplaatst i.p.v. een button.
Waarschijnlijk vergeet ik iets, maar de NamenLijst opent niet automatisch.


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- use content delivery network (CDN) for loading jQuery -->
<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<title>Simuleer een muisklik</title>
</head>

<body>
<select name="NamenLijst">
<option value="0">Jan</option>
<option value="1">Piet</option>
<option value="2">Klaas</option>
</select>

<script type="text/javascript">
//<![CDATA[
$().ready(function() {
$('#NamenLijst').click(function(e) {
// do stuff, like open combobox
});
});
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
$().ready(function() {
$('#NamenLijst').trigger('click'); // simulate click event
});
//]]>
</script>
</body>
</html>
Offline Thomas - 21/10/2016 14:05
Avatar van Thomas Moderator Hm, het betreft dus een dropdownlist (select-element) wat je automatisch wilt openen?

Ik denk dat dat niet gaat werken, en vraag mij zelfs af of dit wel mogelijk is.

Daarnaast heb je allerlei praktische haken en ogen:
- op het moment dat het select-element de focus verliest, bijvoorbeeld doordat je de pagina scrollt of ergens op het scherm klikt, klapt de selectbox weer in
- er is geen enkele garantie dat de uitgeklapte variant past op het scherm (m.a.w. alle namen direct zichtbaar zijn), dit hangt af van: de grootte van het scherm, de lengte van de lijst etc.

Alternatieven:
- maak het evident dat er een keuze gemaakt moet worden, introduceer bijvoorbeeld een dummy-optie met als tekst "- selecteer -" of "- maak een keuze -" of iets dergelijks.

- voorzie het select-element van de eigenschap size="<nummer>" waarbij <nummer> het aantal zichtbare elementen is. Wederom is het hier de vraag of daarmee alle elementen in 1x weergegeven kunnen worden. Waarschijnlijk is het hier invullen van de lijstlengte onpraktisch.

- als het de bedoeling is dat er één leerling gekozen wordt (en je per se wilt dat alle leerlingen direct getoond worden) zou je kunnen overwegen om een ander element te gebruiken, bijvoorbeeld een lijst van radio-buttons?
Offline Gio - 21/10/2016 14:53
Avatar van Gio Nieuw lid <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Open een lijst met namen</title>
</head>
<body>
<select name="NamenLijst" size="3" >
<option value="0" selected>Jan</option>
<option value="1">Piet</option>
<option value="2">Klaas</option>
</select>
</body>
</html>
In bovenstaand htmlvoorbeeld gaat de Namenlijst automatisch open door vb: size="3" te plaatsen. En dat is ok.Gevonden in de voorbeelden op http://www.w3schools.com/

In de DropDownList in ASP.NET opent de lijst ook automatisch, zoals gehoopt, zie vb. hieronder:
<div>
<asp:DropDownList ID="DropDownList2" runat="server" Width="200px" size = "3">
<asp:ListItem Text="Jan" Value="0" Selected = "true"></asp:ListItem>
<asp:ListItem Text="Piet" Value="1"></asp:ListItem>
<asp:ListItem Text="Klaas" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>

In het geval met een ComboBox uit AJAX Control Toolkit opent de namenlijst niet automatisch, zie onderstaand vb:,
<div>
<asp:ComboBox ID="ComboBox3" runat="server" Width="200px" size = "3">
<asp:ListItem Text="Jan" Value="0" Selected = "true"></asp:ListItem>
<asp:ListItem Text="Piet" Value="1"></asp:ListItem>
<asp:ListItem Text="Klaas" Value="2"></asp:ListItem>
</asp:ComboBox>
</div>
Hij doet er blijkbaar niets mee, maar geeft ook geen foutmelding bij het browsen.
Dus ik denk dat ik mij op de DropDownList zal concentreren.
Groet Gio
Offline Thomas - 21/10/2016 15:09
Avatar van Thomas Moderator Zie ook mijn vorige antwoord.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.168s