UpdatePanel内的按钮不会触发方法

时间:2016-12-06 15:02:05

标签: html asp.net

我有这段代码

<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanelRegDDL" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
    <ContentTemplate>                                      
        <asp:Button runat="server" ID="Button2" Text="Crear Coordinador" OnClick="verificarCorreoServer" class="btn btn-success"  UseSubmitBehavior="False" aria-hidden="true" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click"/>
    </Triggers>
</asp:UpdatePanel>

我之所以这样做是因为我不希望按钮刷新页面,但现在按钮不会触发方法verificarCorreoServer。我不知道还能做什么。我已经看到了很多与此相关的问题,但对我来说没什么用,这个方法永远不会在UpdatePanel内部触发。如果我将按钮放在UpdatePanel之外,该按钮将触发该方法但刷新页面。需要你的帮助!

编辑:这是方法代码

public void verificarCorreoServer(Object sender, EventArgs e)
    {

        ControladorUsuario cu = new ControladorUsuario();            
        Usuario user = cu.ObtenerUsuario(correo.Value);
        if (user != null)
        {
            //something
        else
        {                
            Usuario nuevoUsuario = new Usuario();
            nuevoUsuario.nombres = nombre.Value;
            nuevoUsuario.apellidos = apellido.Value;
            nuevoUsuario.correo = correo.Value;
            nuevoUsuario.password = contraseña.Value;
            nuevoUsuario.rut = rut.Value;
            nuevoUsuario.carrera = "";
            nuevoUsuario.fono = telefono.Value;
            nuevoUsuario.codigoRol = 1;
            nuevoUsuario.codigoSede = ddlSede.SelectedIndex+1;
            nuevoUsuario.estado = "Activo";
            cu.InsertarUsuario(nuevoUsuario);


        }
    }

正如我所说的,如果Button位于UpdatePanel之外,该方法可以正常工作,在其内部不起作用。

编辑2:我在方法的第一行有一个中断点。如果Button位于更新面板内,则永远不会到达。我不知道为什么这个方法被忽略了。

1 个答案:

答案 0 :(得分:0)

当ChildrenAsTriggers = true时,请使用PostbackTrigger代替AsyncPostbackTrigger