可以在下拉更改时首先执行Event后面的代码

时间:2011-12-23 07:13:04

标签: asp.net

我有像

这样的代码
<asp:DropDownList ID="SiteIDDropdownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="SiteIDDropdownList_OnSelectedIndexChanged" onChange="javascript:markItUpApply();">
                        </asp:DropDownList>

这里我首先要点火“OnSelectedIndexChanged”然后“onChange”

有可能吗?

3 个答案:

答案 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秒,而不是最好的做法。