ASP.NET 2.0:AutoPostBack = trueでonChangeからjavascript関数を呼び出す
-
10-07-2019 - |
質問
ソースを表示すると、次のようなASP.NET DDLがあります:
<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">
.csページでは次のようになります。
<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />
onchangeおよびAutoPostBack =&quot; true&quot;の使用に関する問題を誰でも見ることができますか?このようなDDLで? DoCustomStuff()が正しく呼び出されていないように見えるユーザーがいるため、DoCustomStuff()が処理を完了する前に__doPostBack()を実行できるかどうか疑問に思っています。
解決
そのようにポストバック参照を手動で添付してみてください:
Page.ClientScript.RegisterClientScriptBlock(
typeof(_Default),
"PageScripts",
string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);
testControl.Attributes["onchange"] = "DoCustomStuff();";
これにより、ポストバッククライアント側の参照が提供されます:
Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
所属していません StackOverflow