C# IE中面板控件下方的按钮未触发

C# IE中面板控件下方的按钮未触发,c#,asp.net,.net-3.5,cross-browser,C#,Asp.net,.net 3.5,Cross Browser,我有一个按钮,当放在两个面板下面时,它不工作。如果我把它移到面板上方,它就会工作 它在Firefox中以任何一种方式工作。它在IE 8中不起作用 按钮运行此代码 protected void Button2_Click(object sender, EventArgs e) { panelForm.Enabled = true; //input panel panelOutput.Visible = false; //output panel

我有一个按钮,当放在两个面板下面时,它不工作。如果我把它移到面板上方,它就会工作

它在Firefox中以任何一种方式工作。它在IE 8中不起作用

按钮运行此代码

protected void Button2_Click(object sender, EventArgs e)
    {
        panelForm.Enabled = true; //input panel
        panelOutput.Visible = false; //output panel
        Button1.Visible = true; //input panel button

    }
我有一些解决办法,但希望找到问题的原因

编辑:这是第二个面板和按钮的标记。我试着把按钮移到面板外面,得到了同样的结果

<asp:Content ID="MainContent" Runat="Server" ContentPlaceHolderID="MainContentPlaceHolder">

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:TextBox ID="domainUserID" runat="server" Visible="false"></asp:TextBox>
<!-- gray bar and title -->
<table style="width:100%; border-style:none;">
    <tr>
        <td class="com_headline">
            SQL Emergency Request [Home]
        </td>
    </tr>
    <tr class="com_app_instructions">
        <td>
            <p>Words here</p>
        </td>
    </tr>
</table>
<!-- end title and gray bar -->



<asp:Panel ID="panelForm" runat="server" Visible="True" CssClass="myform">
<form method="post" action="Default.aspx" id="form">
<h1>Request Form</h1>
<p>Complete this form to be issued a login</p>


<table cellpadding="5px">
    <tr>


            <td>
                IR Number
                <br />

                <span class="small">Obtain your IR number from
                <a href="http://apps.server/SMART">SMART</a></span>

            </td>
            <td>
                <asp:TextBox ID="txtIR" runat="server"></asp:TextBox>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                    ControlToValidate="txtIR" CssClass="errorMsg" 
                    ErrorMessage="Please Enter Your IR Number">
                </asp:RequiredFieldValidator>
            </td>
    </tr>   

    <tr>
            <td>
                Server 
                <br />
                <span class="small">MSSQL5 is supported for now</span>
            </td>
            <td>
                <asp:DropDownList ID="ddServer" runat="server" AutoPostBack="True" 
                    Enabled="False" onselectedindexchanged="ddServer_SelectedIndexChanged">
                    <asp:ListItem>DEVMSSQL05</asp:ListItem>
                    <asp:ListItem Selected="True">MSSQL05</asp:ListItem>
                </asp:DropDownList>

            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                    ControlToValidate="ddServer" CssClass="errorMsg" 
                    ErrorMessage="Please Choose A Server">
                </asp:RequiredFieldValidator>

            </td>
     </tr>
     <tr>
            <td>      
                Database 
                <br />
                <span class="small">You have the role of &#39;Analyst&#39; in these databases</span>
            </td>
            <td>
                <asp:DropDownList ID="ddDatabase" runat="server" AppendDataBoundItems="true" 
                    AutoPostBack="false" DataSourceID="DatabaseDropDownObjectDataSource" 
                    DataTextField="DatabaseName" DataValueField="DatabaseName" Width="150">
                </asp:DropDownList>

            </td>
            <td>

            </td>
     </tr>


                    <tr>
                        <td></td>
                        <td>
                            <asp:Button ID="Button1" runat="server" CssClass="com_btn_flat" 
                                onclick="Button1_Click" Text="Submit" />

                        </td>
                        <td>
                            <div id="loader">loading...</div>
                        </td>
                    </tr>


            </table>
        </form>
</asp:Panel>  

<asp:Panel ID="PanelError" runat="server" Visible="false" CssClass="errorPanel">
        <h1><asp:Label ID="txtErrorMsg" runat="server">error text</asp:Label></h1> 
</asp:Panel>
   <br />

<asp:Panel ID="panelOutput" runat="server" Visible="false" CssClass="panelOutput">

        <h1>
            <asp:Literal ID="Title" runat="server" Text=""/>
        </h1>
        <p>     
            <asp:Literal ID="Warning" runat="server" Text=""/>
        </p>
        <p>     
            <asp:Literal ID="LoginLifeHours" runat="server" Text=""/>
        </p>

        <p>
            <span class="important"> 
                <asp:Literal ID="Login" runat="server" Text="" />
            </span>
        </p>
        <p>     
            <span class="important">    
                <asp:Literal ID="PWD" runat="server" Text="" />
            </span>
        </p>
        <br />

        <p>   
            <asp:Button ID="Button2" runat="server" Text="Request Another Login" 
            onclick="Button2_Click" CssClass="com_btn_flat" />
        </p>



 </asp:Panel>

服务器

目前支持MSSQL5 devmsql05 MSSQL05 数据库
你的角色是';分析员';在这些数据库中 加载。。。 错误文本


这是IE中没有响应的按钮

<p>   
<asp:Button ID="Button2" runat="server" Text="Request Another Login" 
onclick="Button2_Click" CssClass="com_btn_flat" />
</p>


我注意到您的第一个面板(panelForm)中有一个标签。此外,我没有看到带有runat=“server”属性的标记(尽管它可能在母版页中)。而且它看起来不像你的按钮在表单中(除非母版页有表单)


问题是,在Asp.NET WebForms中,一个页面上只能有一个表单。如果您的页面上没有任何标记,则您的按钮将不会在代码背后触发任何事件。

示例代码为Button2\u Click,但面板外的按钮标记将test\u button\u Click作为事件处理程序?有三个按钮,所以你问的是哪一个,我猜是最后一个?

问题是你在内容页中使用了标签。母版页已经包含了一个标签,IE似乎在表单中的表单上犹豫不决。当我从您的aspx中删除标记时,按钮处理程序在IE8下运行

同意-没有任何错误,需要查看更多标记。是否有原因使面板上的DefaultButton属性没有值?可以删除吗?哦,是的…这是刚刚添加的,显然不会编译。添加了整个内容,这可能与CSS有关。你应该发布相关的CSS,以防万一。我已经删除了所有不在母版页中的CSS,但仍然会得到相同的行为。我在页面上有一个带有提交按钮的表单。提交完成后,结果将放置在此输出面板中,表单将被停用。这个按钮应该隐藏输出并重新启用表单。抱歉,修复了代码-删除了标记,因为它不涉及,并且是我正在尝试的测试。此外,如果这就是问题所在,那么它在FireFox中就不会工作了,对吧?没错,尽管很奇怪。正如@Joel Harris提到的,它可以是页面中的表单标签,ASP.NET只喜欢一个表单。或者,为了验证问题,您可以做两件事之一:查看标记并查看是否存在“doPostBack”(“”);在onclick客户端定义中,它触发回发。第二,您可以检查Request.Form[“\uu EVENTTARGET”]和Request.Form[“\uu EVENTARGUMENT”],这是用来连接事件的。这将帮助您验证IE中的问题。这是解决方案。谢谢