当存在具有UpdatePanel的div时,ASP按钮不执行任何操作

时间:2015-08-02 13:20:03

标签: asp.net

我无法解决这个问题。按钮正在工作,但现在点击时它们什么都不做。

这是按钮:

<asp:Button ID="btnEnviar" Text="Send" runat="server" OnClick="RegisterUser" />

在代码背后:

   protected void RegisterUser(object sender, EventArgs e)
   {
    ...
   }

..但点击后,RegisterUser()未被调用(断点测试)。

我已经尝试创建另一个按钮,双击它然后将代码粘贴到它上,也什么都不做。

我已尝试添加到PageLoad

    protected void Page_Load(object sender, EventArgs e)
    {
        btnEnviar.Click += new EventHandler(RegisterUser);
    }

也没有效果。

编辑 :(参见编辑2)这是整个页面(抱歉代码,只是一个快速的设计,所以我可以在SQL层上工作,按钮工作正常,当我不久之前,现在我回来改变设计并意识到它停止工作了。)

<%@ Page Title="" Language="C#" MasterPageFile="~/MP.Master" AutoEventWireup="true" CodeBehind="registar.aspx.cs" Inherits="operacao.registar" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div style="margin: auto">
    <table style="border: 0px; width: 60%">
        <tr>
            <th colspan="3" style="background-color: #3A5896;color:white;">Operação</th>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:TextBox ID="txtRegistarFName" runat="server" placeholder="Primeiro nome" CssClass="txtbox"></asp:TextBox>&nbsp;<asp:TextBox ID="txtRegistarLName" runat="server" placeholder="Último nome (opcional)" CssClass="txtbox"></asp:TextBox>
            </td>
            <td>
                <asp:RequiredFieldValidator ErrorMessage="obrigatório" ForeColor="Red" ControlToValidate="txtRegistarFName"
                    runat="server" Display="Dynamic" />
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:TextBox ID="txtRegistarPassword" runat="server" TextMode="Password" placeholder="Nova password" CssClass="txtbox" AutoCompleteType="Disabled"/></td>
            <td>
                <asp:RequiredFieldValidator ErrorMessage="obrigatório" ForeColor="Red" ControlToValidate="txtRegistarPassword"
                    runat="server" Display="Dynamic" />
            </td>

        </tr>
        <tr>
            <td></td>
            <td>
                <asp:TextBox ID="txtRegistarConfirmPassword" runat="server" TextMode="Password" placeholder="Repetir password" CssClass="txtbox" AutoCompleteType="Disabled" /></td>
            <td>
                <asp:CompareValidator ErrorMessage="passwords diferentes" ForeColor="Red" ControlToCompare="txtRegistarPassword"
                    ControlToValidate="txtRegistarConfirmPassword" runat="server" Display="Dynamic" />
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:TextBox ID="txtRegistarEmail" runat="server" placeholder="e-m@il" CssClass="txtbox" /></td>
            <td>
                <asp:RequiredFieldValidator ErrorMessage="obrigatório" Display="Dynamic" ForeColor="Red"
                    ControlToValidate="txtRegistarEmail" runat="server" />
                <asp:RegularExpressionValidator runat="server" Display="Dynamic" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
                    ControlToValidate="txtregistarEmail" ForeColor="Red" ErrorMessage="e-mail inválido" />
            </td>

        </tr>
        <tr>
            <td></td>
            <td>
                <asp:Button ID="btnEnviar" Text="Enviar" runat="server" OnClick="RegisterUser" />
                <asp:Button ID="btnNovoRegisto" runat="server" Text="Registar" OnClick="btnNovoRegisto_Click" />
            </td>
            <td></td>
        </tr>
    </table>
</div>

编辑2 :我能够找出造成这种情况的原因。我同时使用UpdatePanel创建了一个聊天。我有一个divChatContainer,我以编程方式添加内容(更多div与聊天文本和文本框和结尾处的按钮),然后添加到UpdatePanel,它被添加到位于MasterPage文件中的以下容器中。一旦我删除这个div,按钮再次工作。 UpdatePanel内的按钮始终有效。

<div id="divChatContainer" runat="server" style="overflow-y: scroll; word-wrap: break-word; width: 19%; max-height: 35%; position: fixed; right: 0px; bottom: 0%;">CHAT</div><br />

1 个答案:

答案 0 :(得分:0)

asp.net中的按钮由JavaScript触发。只需检查您的浏览器设置并确保启用了JavaScript。 如果之前它正在运作,可能就是这种情况。