C# IE中面板控件下方的按钮未触发
我有一个按钮,当放在两个面板下面时,它不工作。如果我把它移到面板上方,它就会工作 它在Firefox中以任何一种方式工作。它在IE 8中不起作用 按钮运行此代码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
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 'Analyst' 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中的问题。这是解决方案。谢谢