asp.net 的 DropDownList 一般都會用AutoPastBack去做下一動的事件
但若是想要在AutoPastBack 中插入Confrim ,網頁還是會回傳
但若用onchange 代AutoPastBack 替即可。
所以 將AutoPastBack 去除,保留 onchange即可。
而javascript 即需要使用
__doPostBack。
以下為範例
============UI==================
<asp:ScriptManager ID="scirptM" runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="up_show" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="ddl_a" runat="server" onchange="return confirm_change() " OnSelectedIndexChanged="ddl_a_SelectedIndexChanged">
<asp:ListItem Text="1"></asp:ListItem>
<asp:ListItem Text="2"></asp:ListItem>
<asp:ListItem Text="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddl_b" runat="server"></asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl_a" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
=========== Javascript==================
function confirm_change() {
// onchange="javascript: return confirm_change();"
var pass = confirm("OK");
console.log(pass);
if (pass) {
__doPostBack("ctl00$ContentPlaceHolder1$ddl_a", "ddl_achange");
// __doPostBack("Web control Name", " control event ");
}
return pass;
}