Springen naar inhoud


- - - - -

Usercontrol postBack


  • Log in a.u.b. om te beantwoorden
Er zijn 54 reacties in dit onderwerp

#31 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 24 juni 2011 - 09:41

Bedankt voor je reactie,

Misschien een klein beetje informatie dat mist, maar wat wel degelijk van belang is....


Ik gebruik

Code:
<select id="selectbox1" multiple="true">

let op multiple="true", bij jouw selectbox is het eerste item(volvo) ook gelijk de waarde bij een onready.

Bij mij is de default waarde null.



Code:
Server kant: 
Wat ik in een vorig project heb gedaan is een datamodel maken waarin dan in ieder geval de inhoud van de twee lijstjes staat van de gebruiker. Deze model class heb ik aan de view gebonden en vervolgens de @Html.DropDownListFor helpers gebruikt om al de eerste info in te vullen. 


Als ik het goed begrijp maak je van twee models(lijstjes) één model  :roll:


Groeten,

Eviltwin

#32 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 24 juni 2011 - 11:46

Hallo,

JQuery aanpassing voor multiselect:

Voorbeeld:
Visual Basic Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>  
<script type="text/javascript"> 
$(document).ready(function() {
	var volvoOptions = {  
		 'green' : 'Green',  
		 'yellow' : 'Yellow' 
	};  
	var saabOptions = {  
		 'red' : 'Red',  
		 'blue' : 'Blue',  
	};  

	$("#selectbox1").change(function(f) {
		var select = $("#selectbox2");
		if(select.prop) {  
			var options = select.prop('options');  
		}  
		else {  
			var options = select.attr('options');  
		}  

		$('option', select).remove(); 
		$.each($(this).val(),function(val,text){		
			if( text == "volvo" )
			{
				$.each(volvoOptions, function(val, text) {  
					options[options.length] = new Option(text, val);  
				}); 
			}
			else if( text == "saab" )
			{
				$.each(saabOptions, function(val, text) {  
					options[options.length] = new Option(text, val);  
				}); 
			}
		});
	});
	$("#selectbox1").get(0).selectedIndex = 0;
	$("#selectbox1").change();
});
 
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>JQuery select boxes test</title>
</head>
<body>
options1:
<select id="selectbox1" multiple="true">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
</select>
options2:
<select id="selectbox2">
</select>
</body>
</html>


Onderste twee regels in het script zijn waar het om gaat, selectedIndex zetten triggert niet het changed event.

Wat betreft mijn Model, achter elke view heb ik altijd een Model zitten dat voor één of meerdere views geldt:
Visual Basic Code:
class CalculationModel
{
	public List<Unit> Units { get; set; }
	public string Unit { get; set; }
	public List<UnitType> UnitTypes { get; set; }
	public string UnitType { get; set; }
	public double Input { get; set; }
	public double Output { get; set; }
}

class Unit
{
	public string Text { get; set; }
	public string Value { get; set; }
}

class UnitType
{
	public string Text { get; set; }
	public string Value { get; set; }
}


Bovenstaand is een voorbeeld, maar door middel van de @Html.DropDownListFor maak ik van de Units property + de Unit property een selectlist. Hoe je een multi select maakt op basis van een model weet ik niet precies, is nog nooit voorgekomen dat ik dat nodig had :roll:.

Mvg,

Jark

#33 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 27 juni 2011 - 11:57

Hallo,

Nu snap ik waar je heen wilt.

Ik gebruik geen twee models tegelijk om problemen te voorkomen.... Ik ben al te lang bezig met het project, en als nog meer tijd in nieuwe dingen moet gaan steken (al zullen ze op den duur vast rendabel worden) dan loop ik echt riant uit.

Voorlopig wordt het dus op de noob manier....


<select id="register" class="text-box single-line" type="text" value="" name="register" >
                <optgroup label="5 Volt Digitatle ingang">
                    <option value="1"> 5V in 1 (j6 - 14) </option>
                    <option value="2"> 5V in 2 (j6 - 15) </option>
                      .....
                      .....
                 </optgroup>
               <optgroup label="230 Volt ingang">
                    <option value="13"> 230v in 1 (j8 - 12) </option>
                    <option value="14"> 230v in 2( j8 - 11 )</option>
                      .....
                      .....
                 </optgroup>
</select>


Ik denk overigens dat ik dit wel moet gaan gebruiken als ik ook nog plaatjes in het zelfde formulier wil kunnen toevoegen? Of ik moet gaan werken met pop-up venster, maar dat moet ik dan eerst gaan uitzoeken.


Groeten,

Eviltwin

#34 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 27 juni 2011 - 13:58

Hallo,

Nee, in principe hoeft dit niet. Dat is nu het mooie van MVC :roll:

Je zou een uri of een id kunnen meegeven in je viewbag en vervolgens een img tag kunnen maken in je view die verwijst naar dit plaatje.

Zie ook --> http://stackoverflow...mage-mvc3-razor voor een mooie static method.

Plaatjes vervangen kan dmv een json get request naar je Controller waarmee je vervolgens je img link aanpast met het desbetreffende plaatje (of dmv een partialview die je teruggeeft).

Mvg,

Jark

#35 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 27 juni 2011 - 16:35

Hallo,

Even een update,

Bedankt voor je reactie Jark, ik ben echt enorm blij dat je zoveel wilt helpen.

Voor de laatste vraag kan ik zeggen: dat gedeelte ga ik cancelen.

Wat ik nu ga doen:

In de C# section heb ik een post gemaakt voor een ander project, hierin maak ik gebruik van een scherm met daarin een foto, als je op de foto klikt, dan komt er een rondje op de locatie waar geklikt is en moet er een aanwijzing voor de fout worden weergegeven.

Dit gedeelte wil ik nu ook voor mijn ASP.NET project(Easy tester beheer) gebruiken, maar dan in mijn C# from application (Easy tester) waar dit project mee moet samen werken, waarover ik ook al meerdere vragen heb gestelt in het C# gedeelte (volgen we het nog  :oops: ).

Weederom vele malen dank aan Jark en andere mede VBIB'er. Zonder jullie hulp was ik al niet zover gekomen  :roll:

Groeten,

Eviltwin

#36 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 28 juni 2011 - 10:21

Hallo,

Even een klein JS vraagje,

Ik gebruik de volgende code om mijn selectedindex te setten:

Code:

	$(document).ready(function (f) {
		if ($("#data").text().trim() != "") {
			$("#sb_hoofdstukken").val(parseInt($("#data").text()));
			$("#sb_hoofdstukken").change();
		}
		else {
			$("#sb_hoofdstukken").get(0).selectedIndex = 0;
			$("#sb_hoofdstukken").change();
		}

		//$("#sb_hoofdstukken").val(data.text());


		$.post('/Hoofdstukken/testenView/' + $("#data").text(),
			function (data) {
				$('#testen-holder').html(data);
			}
		);

		$("#sb_hoofdstukken").val(parseInt($("#data").text()));
	});

Alleen werkt het setten van de index niet in dit document.....

Als ik alleen de set index code in de pagina zet, dan werkt het wel weer....


Code:
   $("#sb_hoofdstukken").get(0).selectedIndex = 0;
	$("#sb_hoofdstukken").change();

Als ik alerts zet in elke statement, dan kom ik toch echt in de else  :roll:

Code:
	   else {
			alert("In de else");
			$("#sb_hoofdstukken").get(0).selectedIndex = 0;
			$("#sb_hoofdstukken").change();
		}


Iemand zo een idee?

#37 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 28 juni 2011 - 10:45

Laat maar,

heb het al weer  :roll:.

Volgende weg laten en het werkt prima.


//$("#sb_hoofdstukken").val(parseInt($("#data").text()));

Groeten,

Eviltwin

#38 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 28 juni 2011 - 11:43

Hallo Eviltwin,

Mooi dat je het zo opgelost hebt :roll:

Maar las ik het nu goed dat je alerts zet!? Je kunt natuurlijk ook gewoon met de visual studio debugger door je javascript heen lopen he :oops:

Oh, en de watch + immediate window zijn ook heel handig om te kijken wat de JQuery selectors op een bepaald punt doen.

Mvg,

Jark

#39 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 28 juni 2011 - 13:45

Citeren

Maar las ik het nu goed dat je alerts zet!? Je kunt natuurlijk ook gewoon met de visual studio debugger door je javascript heen lopen he  

Dat wist ik nog niet  :roll:

Maar ik probeerde het net even... maar krijg het niet werkend.

Oke ik gebruik standaard Firefox (zoals elke web-dev  :oops: ), maar ik heb ondertussen al IE als standaardbrowser gezet en daarbij Web-dev toolbar geinstalleerd, maar het werkt nog steeds niet.

Ik zie rechts wel scripts en script-blocks, maar "echt" debuggen krijg ik niet werkend. Opties als breakpoints werken niet, maar stoppen wel het laden van de website.

Groeten,

Eviltwin

#40 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 28 juni 2011 - 14:11

Hallo,

Hehe ik moet apps maken voor ie8 voornamelijk, dus dat is ook mijn ontwikkelbrowser.

Ik gebruik hier gewoon ie8 en met het standaard asp .net mvc3 project icm visual studio 2010 web developer sp1 kan ik debuggen in mijn javascript file die ik geinclude heb. Zonder web-dev toolbar trouwens.

Wat ik wel vaak moet doen voordat breakpoints werken is een keer refreshen, maar dat is meestal als ik de js aanpas nadat de pagina geladen is. Met F12 kun je trouwens in ie ook webpagina's debuggen die je bekijkt :roll: werkt best leuk.

Met de FireBug plugin in firefox kun je volgens mij ook javascript debuggen, maar heb daar nog nooit mee gewerkt.

Mvg,

Jark

#41 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 28 juni 2011 - 15:01

Hallo,

Citeren

Hehe ik moet apps maken voor ie8 voornamelijk, dus dat is ook mijn ontwikkelbrowser.

Oeps.. IE9 hier.

Misschien doet het ook wel niet wat ik er van verwacht.
De optie F12 in IE werkt inderdaad wel. Het vervelende is alleen dat hij bij alle $ door de Jquery documenten gaat  :roll: .

Trouwens nog even een vraag.

Ik heb in mijn DB o.a. een tabel met  een paar kolomnamen waar een - instaat:

In mijn model de properties als volgt aanmaken werkt dus niet:

        public bool inv-rxd { get; set; }
        public bool inv-rts { get; set; }
        public bool inv-cts { get; set; }
        public bool inv-dtr { get; set; }
        public bool inv-dsr { get; set; }
        public bool inv-dcd { get; set; }
        public bool inv-ri  { get; set; }


In C# geeft dit geen problemen omdat ik ze op de volgende manier ophaal, maar hoe kan ik in ASP.net de tablellen benaderen zonder de in DB aanpassingen te maken?

Code:
					myEEData.InvertCTS = (bool)mprog_result[0]["inv-cts"];
					myEEData.InvertDCD = (bool)mprog_result[0]["inv-dcd"];
					myEEData.InvertDSR = (bool)mprog_result[0]["inv-dsr"];
					myEEData.InvertDTR = (bool)mprog_result[0]["inv-dtr"];
					myEEData.InvertRI = (bool)mprog_result[0]["inv-ri"];
					myEEData.InvertRTS = (bool)mprog_result[0]["inv-rts"];
					myEEData.InvertRXD = (bool)mprog_result[0]["inv-rxd"];
					myEEData.InvertTXD = (bool)mprog_result[0]["inv-txd"];

  

Groeten,

Eviltwin

#42 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 29 juni 2011 - 11:01

Hallo,

Nou ja, ik kan er gewoon instappen in VS 2010 en ook set statement en alle andere handige features gebruiken...

Over EF: Code-First: de database manier is ook gewoon in C# te gebruiken hoor :roll:

Maar om jouw vraag te beantwoorden: je zult gebruik moeten maken van de Fluent API om je properties naar een andere naam te mappen.

Zie ook --> http://blogs.msdn.co...pi-samples.aspx, onder het kopje Table & Column Mapping staat wat je zoekt.

Mvg,

Jark

#43 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 29 juni 2011 - 14:35

Bedankt, dat lijkt te zijn wat ik nodig heb  :roll:

Wat het debuggen betrefd. Ik ben toch al klaar met het meeste JS.
Mocht ik het nog wel nodig hebben, dan gebruik ik firefox + firebug wel.

Goeten,

Eviltwin

#44 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 01 juli 2011 - 09:39

Hey,

Deze keer weer een klein vraagje.

Ik heb meerdere checkboxen in mijn forms zitten.
Als ik één van de checkboxen aanvink en vervolgens de pagina ververs, dan staat de laatste staat nog in de checkbox. Aangezien er op de document.ready een check wordt gedaan op de checkbox, loopt dit dus in de soep..

Weet iemand hoe ik de cache kan uitzetten voor (bepaalde) controls?

Ik heb de volgende code gevonden en geprobeerd, maar deze heeft geen effect. Ik heb de code zowel in de partialPage als de Layout page gezet.

Code:
	
Response.Cache.SetCacheability(HttpCacheability.NoCache);


Tevens heb ik een manier gevonden via de meta-tags (maar werkt ook niet), maar deze schijnt niet aan te raden te zijn voor dynamische websites.......

Code:
 <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
 <META HTTP-EQUIV="Expires" CONTENT="-1">
 <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">


Groeten,

Eviltwin

#45 Vozzie

Vozzie

    Moderator

  • Leden
  • PipPipPipPipPipPipPip
  • 1855 berichten
    Laatst bezocht 12 jul 2017 13:15
Inzender

Geplaatst op 01 juli 2011 - 11:39

Hallo,

Ook als je CTRL+F5 doet?

F5 toont gewoon dezelfde pagina opnieuw,...

Denk niet dat controls op de client side standaard cache hebben,...

document.ready, bedoel je dan client side, javascript ofzo?

Groeten

#46 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 01 juli 2011 - 12:10

Hallo,

@Vozzie

Bij CTRL+F5 doet hij het inderdaad niet, maar dat is vrij gebruikelijk   :roll: .

En jep, ik heb het over Javascript / Jquery.

Groeten,

Eviltwin

#47 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 01 juli 2011 - 12:46

Hallo,

Zie deze post van stackoverflow:
http://stackoverflow...e-browser-cache.

Ik gebruik zelf de ActionFilter van die post voor al mijn ajax requests aangezien ie8 de eeigenschap heeft om get requests te cachen.

Het eerste antwoord gebruik ik op mijn pagina aangezien ik wil dat hij altijd opnieuw opgebouwd wordt en nooit gecached moet worden.

Mvg,

Jark

#48 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 01 juli 2011 - 13:36

Thanks,

Eerste antwoord met de meta werkt nu wel  http://www.vbib.be/p...tyle_emoticons/default/icon_cool.gif . Waarschijnlijk de eerste keer op een verkeerde plek gedumpt ofzo  :oops:

Bij een get request van PHP ben ik het inderdaad ook gewend dat deze gecached worden. Daar los ik het op met een random string in de url.

Wat helemaal verveld is: Flash testen in IE, duurt helemaal lang voordat deze uit de cache gehaalt wordt  :roll:  Lange leve Firefox web-dev toolbar met Disable cache  :lol:


Groeten,

Eviltwin

#49 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 01 juli 2011 - 15:04

Hallo,

Nu even een wat rare vraag....

Ik weet dat het heel omslachtig is, maar ik maak 1 print aan en tegelijkertijd wil ik ook een bijbehorend item aanmaken(met jquery ligthbox venster.) het probleem is dat het item het id verwacht van de print. Deze heb ik nog niet aangezien het nog nooit is aangemaakt.

Is er ook een mogelijkheid om de het volgende autoincrement id te achterhalen voor de print tijdens het maken van het item.

Ik weet dat het niet netjes is en dat er fouten mee kunnen optreden omdat een ander persoon tussen tijds een nieuwe print aan kan maken. Maar dat maakt even niet uit... tenzij juliie een andere nette oplossing hebben, dan sta ik hier altijd voor open   :roll:


Groeten,

Eviltwin

#50 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 03 juli 2011 - 21:03

Hallo,

Je zou natuurlijk de print + het bijbehorende item in 1 request te kunnen sturen.

Of eerst een request naar de server sturen en op de server een print aanmaken in de database met tijdelijke waardes, na het saven krijg je de id terug en die stuur je terug.

Mvg,

Jark

#51 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 04 juli 2011 - 10:01

Hallo,

Bedankt Jark.


Ik ben tot de volgende oplossing gekomen...

Als de printen aangemaakt worden, dan staat daar de checkbox voor het extra item(MPROG). Deze wordt niet meer in de pagina verwerkt door Jquery, maar wordt mee gepost met de rest..


Code:
		[HttpPost]
		public PartialViewResult Create(printen printen)
		{
			if (ModelState.IsValid)
			{
				e.Printen.Add(printen);
				e.SaveChanges();
				return PartialView("/mprog/create/" + printen.print_id);  
			}

			return PartialView(printen);
		}


Tijdens de actie SaveChanges(); wordt de waarde van print_id terug gegeven zonder daar wat voor te doen.
Dat is dan wel weer lekker makkelijk  :)

Alleen het probleem is dat ik met de return niet naar de mprog/create pagina kan.

ik krijg telkens de fout(nummer veranderd wel.)

Code:
The partial view '/mprog/create/46' was not found or no view engine supports the searched locations. The following locations were searched:
/mprog/create/46


Ik heb de actionResult veranderd naar PartialView, maar ook met de standaard code werkt het niet:

Code:

		[HttpPost]
		public ActionResult Create(printen printen)
		{
			if (ModelState.IsValid)
			{
				e.Printen.Add(printen);
				e.SaveChanges();
				return PartialView("/mprog/create/" + printen.print_id);  
			}

			return RedirectToAction("Index");
		}


Als ik naar direct naar de URL ga werkt het wel:

Code:
http://localhost:4813/mprog/create/44


Mprog/create code:
Code:

		//
		// GET: /mprog/Create
	   //[httpGet] <-----   WERKT OOK NIET  <-----
		public PartialViewResult Create(int id)
		{
			ViewBag.pid = id;
			return PartialView();
		}



Ik snap niet dat dit niet wil lukken, dat op de maandag morgen met een frisse blik   :)

Groeten,

Eviltwin

#52 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 04 juli 2011 - 13:42

Hallo,

En als je de volgende override gebruikt van redirecttoaction?

http://msdn.microsof...y/dd492939.aspx.

Mvg,

Jark

#53 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 04 juli 2011 - 14:20

Ik was al op een andere manier verder gegaan (ik had niks anders om mee verder te gaan) en heb het op een andere manier opgelost.

Ik heb eerst de print op geslagen.

Code:
	 [HttpPost]
		public ActionResult Create(printen printen)
		{
			if (ModelState.IsValid)
			{
				e.Printen.Add(printen);
				e.SaveChanges();
				if (printen.mprog)
				{
					return this.Content(printen.print_id.ToString());
				}
			}

			return RedirectToAction("Index");  
		}

In het gedeelte van e.SaveChanges(); wordt automatisch het print_id terug gegeven... vervolgens check ik of mprog waar is en laat aan de hand hiervan de bewerk pagina (met het print_id  :) ) of de index weer zien.

Groeten,


Eviltwin

#54 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 mei 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 08 juli 2011 - 11:55

Hallo,

Toch nog even een vraag je vlak voor het weekend...

Een tijd je geleden had Jark me al gehoplen met selectboxen vullen(tweede post):

http://www.vbib.be/P...-start-30.phtml

Maar nu ik het project aan het uitbreiden ben moeten er verschillende opties in de tweede selectbox komen + optgroups...

Omdat ik dus ook optgroup ga gebruiken lijkt het me handig om het in XML op te bouwen en uit telezen(voorbeeld):


Code:

<?xml version="1.0" encoding="ISO8859-1" ?>
<printen>
	<tester>
		<groep gr_naam="5 Volt Digitatle ingang">
			<register>
				<value>1</value>
				<text>5V in 1 (j6 - 14)</text>
			</register>
			<register>
				<value>2</value>
				<text>5V in 2 (j6 - 15)</text>
			</register>
		</groep>
		<groep gr_naam="10 Volt Digitatle ingang">
			<register>
				<value>1</value>
				<text>5V in 1 (j6 - 16)</text>
			</register>
			<register>
				<value>2</value>
				<text>5V in 2 (j6 - 17)</text>
			</register>  
		</groep>
	</tester>
	<bie6500>
		<groep gr_naam="Basis settings">
			<register>
				<value>0</value>
				<text>Weer te geven onderdelen</text>
			</register>
			<register>
				<value>1</value>
				<text>Wachttijd voor kleppen</text>
			</register>
			<register>
				<value>2</value>
				<text>Huidige Methode</text>
			</register>
			<register>
				<value>3</value>
				<text>Display Rood</text>
			</register>  
		</groep>
	</bie6500>
</printen> 




Ik heb al een voorbeeld code gevonden voor het uitlezen van XML, maar deze gaat er niet erg diep op in.. en werkt op onload(kan ik dat zelf wel omgooien naar onchange)


Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Get All Data</title>
		<meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8" />
		<script type="text/javascript">
			/* <![CDATA[ */
			var xmlDoc;
			function loadXmlDoc()
			{	  
				try  
				{
					if (window.ActiveXObject)
					{
						xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async=false;
						xmlDoc.load("music.xml");
						LoadOptions();
					}
					else if (document.implementation && document.implementation.createDocument)   
					{		
						xmlDoc = document.implementation.createDocument("","",null);
						xmlDoc.onload=LoadOptions;
						xmlDoc.load("music.xml");
						
					}
				}
				catch(err)
				{	
					document.getElementById("box").innerHTML = "XML data is unavailable";
				}
			}
			
			var genrename;
			
			function LoadOptions() 
			{  
				genrename = xmlDoc.getElementsByTagName("Name"); 
				for (var i=0; i<genrename.length; i++)
				{	  
					 document.forms['genreform'].genre.options[i] = new Option(genrename[i].firstChild.nodeValue,genrename[i].firstChild.nodeValue);
				}
			}
			window.onload=loadXmlDoc;
			//window.onload=loadOptions;/* ]]> */
		</script>
	</head>
	<body>
		<form name="genreform">   
			<select name="genre" >	  
				<option value="Test"> Testing</Option>	
			</select>
		</form>
		<div id = "box" style= "background:yellow;width:320px;padding:5px"> 
		
		</div>
	</body>
</html>



Bijbhorende XML

Code:

<?xml version="1.0" encoding="ISO8859-1" ?>
<NewDataSet>  
	<CD>
	   <Name>Music</Name>
	</CD>
	<CD>
	   <Name>Politics</Name>  
	</CD>  
	<CD>
	   <Name>Shopping</Name> 
	</CD>
</NewDataSet> 



Mijn vraag,

Hoe kan ik er voor zorgen dat ik met Javascript / jquery XML kan uitlezen en opbouwen (alleen welke bij de geselecteerde print hoort) in Selectboxes met optgroups.

Ik denk dat de value van het eerste selectbox (1, 2 ,3 ) gebruikt kan worden als index voor de nodes:

<tester>
<bie6500>

Groeten,

Eviltwin

#55 Jark

Jark

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 560 berichten
    Laatst bezocht 30 jul 2012 13:56

Geplaatst op 08 juli 2011 - 13:54

Hallo,

Inmiddels al de derde keer dat ik deze post schrijf, erg irritant dat je hier je geschreven text kwijtraakt als je je sessie kwijtraakt door inactief te staan.

Als ik jou was zou ik ASP .Net MVC 3 gebruiken, deze kent de JsonResult class, hiermee kun je objecten serializen als json. Verder kun je met jquery van die json weer objecten maken in javascript en er dan ook weer door heen wandelen. Zie --> http://api.jquery.co...uery.parseJSON/.

Mvg,

Jark




0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)