ASP.NET 2.0: Chamando uma função JavaScript de OnChange com AutoPostback = true
-
10-07-2019 - |
Pergunta
Eu tenho um DDL ASP.NET que se parece com isso quando vejo a fonte:
<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">
Parece isso na página .cs:
<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />
Alguém pode ver um problema em usar o OnChange e o AutoPostback = "True" em um DDL como este? Pergunto porque temos alguns usuários para quem o docustomstuff () não parece ser chamado corretamente, e estou me perguntando se seria possível que o __DOPOSTBACK () seja executado antes que o docustomstuff () conclua seu trabalho.
Solução
Tente anexar referência de postback manualmente assim:
Page.ClientScript.RegisterClientScriptBlock(
typeof(_Default),
"PageScripts",
string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);
testControl.Attributes["onchange"] = "DoCustomStuff();";
Isso fornece a referência do lado do cliente de postback:
Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow