2024年5月27日 星期一

[asp.net] DropDownList 的 AutoPostBack 和 onchange

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;

       }

沒有留言:

張貼留言