Toon posts:

[JavaScript + C#]

Pagina: 1
Acties:

Verwijderd

Topicstarter
De algemene vraag is hoe kan ik javascript uitvoeren op items uit een web user control.

Ik maak gebruik van een webapplicatie in de body hiervan staat in de onload de initTree().

<body MS_POSITIONING="GridLayout" onload="initTree()">

De Function initTree() staat in de web user controle die in het web form wordt geladen en heeft betrekking op een item in de web user controle. Ik krijg tijdens het runnen de melding dat het item niet gedefinieerd is. Waarschijnlijk omdat deze naar de Page kijkt (naar de webform dus en niet de web user control).

Hierop loopt deze fout:
+ strTreeName + ".onSelectedIndexChange
of terwijl tv_memloriaal.onSelectedIndexChange

De function in de Page_Load ziet er alsvolgt uit:

string strTreeName = "tv_memoriaal_opbouw";
string strRef = Page.GetPostBackEventReference(tv_memoriaal_opbouw);
string strScript = "<script language=\"JavaScript\"> \n" +
"<!-- \n" +
" function initTree() { \n" + "
" + strTreeName + ".onSelectedIndexChange = function() { \n" + "if (event.oldTreeNodeIndex != event.newTreeNodeIndex) \n" +
"this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); \n" +
"window.setTimeout('" + strRef.Replace("'","\\'") + "', 0, 'JavaScript'); \n" +
" } \n" +
" } \n" +
"// --> \n" +
"</script>";
Page.RegisterClientScriptBlock("InitTree",strScript );

[ Voor 18% gewijzigd door Verwijderd op 14-05-2003 09:16 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Mijn C# kennis is nihil, maar ik heb zo het vermoeden dat het in de timeout fout gaat.
code:
1
string strRef = Page.GetPostBackEventReference(tv_memoriaal_opbouw);

iets zegt me dat dit iets op de server is (?) javascript staat daar natuurlijk volledig los van.
In elk geval is het handig om in gevallen dat je clientside problemen hebt de geparsede HTML en javascript te posten ipv je serverside script...

Intentionally left blank


Verwijderd

Topicstarter
Ik heb hetzelfde probleem met een image button die op een web user control staat:

ImageButton1.Attributes.Add"onMouseOver","document.all.ImageButton1.src='C:/Temp/warning.gif';");
ImageButton1.Attributes.Add"onMouseOut","document.all.ImageButton1.src='C:/Temp/memoriaal.gif';");

Dan wordt het ImageButton1 ook niet herkent

maar zet ik nu een ImageButton1 op de webform erbij dan word bovenstaande actie op dit item uitgevoerd.

[ Voor 40% gewijzigd door Verwijderd op 14-05-2003 10:11 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 14 May 2003 @ 10:00:
Ik heb hetzelfde probleem met een image button die op een web user control staat:

ImageButton1.Attributes.Add"onMouseOver","document.all.ImageButton1.src='C:/Temp/warning.gif';");
ImageButton1.Attributes.Add"onMouseOut","document.all.ImageButton1.src='C:/Temp/memoriaal.gif';");

Dan wordt het ImageButton1 ook niet herkent
logisch, ImageButton1 zal ook geen property zijn van 'this' wat waarschijnlijk in deze context al naar ImageButton1 verwijst. Gewoon this.src= is dus voldoende.

Edit: net stond er wat anders???
mgoed, wordt ImageButton1 uiteindelijk wel gebruikt in een id attribuut? (daarom zeg ik al: post de geparsede HTML, daar hebben we veel meer aan).
In elk geval kan ik je het gebruik van document.all ten zeerste afraden (tenzij je IE4 nog moet/wilt ondersteunen)...

[ Voor 26% gewijzigd door crisp op 14-05-2003 10:05 ]

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 14 May 2003 @ 10:04:
[...]

logisch, ImageButton1 zal ook geen property zijn van 'this' wat waarschijnlijk in deze context al naar ImageButton1 verwijst. Gewoon this.src= is dus voldoende.

Edit: net stond er wat anders???
mgoed, wordt ImageButton1 uiteindelijk wel gebruikt in een id attribuut? (daarom zeg ik al: post de geparsede HTML, daar hebben we veel meer aan).
In elk geval kan ik je het gebruik van document.all ten zeerste afraden (tenzij je IE4 nog moet/wilt ondersteunen)...
Door jou opmerking : post de geparsede HTML wist ik het.
Er wordt _ctl0_ voor het item geplaats, doe je dit ook dan werkt het.