Кнопка не срабатывает. Нажмите ниже панели управления в IE. - PullRequest
1 голос
/ 10 февраля 2010

У меня есть кнопка, которая не работает, когда находится под двумя панелями. Если я перемещу его над панелями, это работает.

В 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

    }

У меня есть несколько обходных путей, но я надеялся найти причину проблемы.

edit: вот разметка второй панели и кнопки. Я попытался переместить кнопку за пределы панели и получил тот же результат.

<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>

Это кнопка, которая не отвечает в IE

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

Ответы [ 3 ]

1 голос
/ 10 февраля 2010

Пример кода: Button2_Click, но ваша разметка кнопок вне панелей имеет test_button_Click в качестве обработчика событий? Есть три кнопки, так о какой вы спрашиваете, я полагаю, последняя?

1 голос
/ 11 февраля 2010

Проблема в том, что вы используете тег на своей странице контента. Главная страница уже содержит тег , и IE, кажется, отклоняется от формы в форме. Когда я удалил тег из вашего aspx, обработчик кнопок работал под IE8.

0 голосов
/ 10 февраля 2010

Я заметил, что у вас есть тег внутри вашей первой панели (panelForm). Кроме того, я не вижу тега с атрибутом runat = "server" (хотя это может быть на главной странице). И не похоже, что ваша кнопка находится внутри формы (если только на главной странице нет формы).

Проблема в том, что на веб-формах Asp.NET может быть только одна форма на странице. Если у вас нет тегов на вашей странице, то ваши кнопки не будут запускать какие-либо события для выделенного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...