ASP.NET 2.0: chiamata di una funzione javascript da onChange con AutoPostBack = true
-
10-07-2019 - |
Domanda
Ho un DDL ASP.NET che assomiglia a questo quando visualizzo la fonte:
<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">
Sembra così nella pagina .cs:
<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />
Qualcuno può vedere un problema con l'utilizzo di onchange e AutoPostBack = " true " su un DDL come questo? Lo chiedo perché abbiamo alcuni utenti per i quali DoCustomStuff () non sembra essere chiamato correttamente, e mi chiedo se sarebbe possibile eseguire __doPostBack () prima che DoCustomStuff () completi il ??suo lavoro.
Soluzione
Prova a collegare manualmente il riferimento di postback in questo modo:
Page.ClientScript.RegisterClientScriptBlock(
typeof(_Default),
"PageScripts",
string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);
testControl.Attributes["onchange"] = "DoCustomStuff();";
questo ti dà il riferimento lato client di postback:
Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow