Question

J'ai un DDL ASP.NET qui ressemble à ceci lorsque je visualise la source:

<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">

Cela ressemble à ceci sur la page .cs:

<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />

Quelqu'un peut-il voir un problème avec onchange et AutoPostBack = " true " sur un DDL comme ça? Je demande parce que nous avons des utilisateurs pour lesquels la DoCustomStuff () ne semble pas être appelée correctement, et je me demande s’il serait possible que la __doPostBack () soit exécutée avant que DoCustomStuff () ne termine son travail.

Était-ce utile?

La solution

Essayez d’attacher la référence de publication manuellement comme ceci:

Page.ClientScript.RegisterClientScriptBlock(
  typeof(_Default), 
  "PageScripts", 
  string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);

testControl.Attributes["onchange"] =  "DoCustomStuff();";

cela vous donne la référence côté client de publication:

Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top