我有像
这样的代码<asp:DropDownList ID="SiteIDDropdownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="SiteIDDropdownList_OnSelectedIndexChanged" onChange="javascript:markItUpApply();">
</asp:DropDownList>
这里我首先要点火“OnSelectedIndexChanged”然后“onChange”
有可能吗?
答案 0 :(得分:2)
“onChange”是一个客户端事件,而“OnSelectedIndexChanged”是服务器端的asp.net事件,没有办法以不同的顺序触发它们。
尝试将代码从onChanged移动到OnSelectedIndexChanged事件中,当然您需要将其转换为.net代码
答案 1 :(得分:1)
您可以删除onchange属性并注册一个启动脚本,该脚本将在回发完成后触发,我认为实际上将按照您的意愿运行。
在OnSelectedIndexChanged事件中,您可以使用。
Page.ClientScript.RegisterStartupScript(this.GetType(), "testScript", "markItUpApply();", true);
编辑:
如果页面中有更新面板,请使用此代码
ScriptManager.RegisterStartupScript(this, GetType(), "testScript", "markItUpApply();", true);
希望这会有所帮助。
答案 2 :(得分:0)
情况就是这两个都是事件,并且会在选择下拉列表时触发。但是如果你想延迟你的代码隐藏调用,你可以尝试一下:
System.Threading.Thread.Sleep(2000);
但它会让你延迟2秒,而不是最好的做法。