2010-02-09 3 views
1

두 개의 패널 아래에 배치하면 버튼이 작동하지 않습니다. 패널 위로 이동하면 작동합니다.버튼이 실행되지 않습니다 아래에있는 버튼 IE의 패널 컨트롤

Firefox에서 작동합니다. 그것은이 코드 나는 몇 가지 해결 방법이

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

    } 

IE 8

에서 버튼 실행이 작동하지 않지만, 문제의 원인을 찾기 위해 기대했다.

편집 : 여기에는 두 번째 패널 및 버튼의 마크 업이 있습니다. 패널 외부로 버튼을 이동하여 동일한 결과를 얻으려고 시도했습니다.

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

마크 업을 보여줄 수 있습니까? – Stephan

+0

동의 - 아무 것도 잘못된 것처럼 보이지만 더 많은 마크 업이 필요합니다. 값이없는 패널에 DefaultButton 특성이있는 이유가 있습니까? 제거 될 수 있습니까? –

+0

오, 예 ... 그건 방금 추가되었고 분명히 컴파일되지 않습니다. – Sam

답변

1

콘텐츠 페이지에 양식 > 태그를 사용하고있는 것이 문제입니다. 마스터 페이지에는 이미 < 양식 > 태그가 포함되어 있으며 IE는 양식 내의 양식을 숨기고있는 것처럼 보입니다. aspx에서 < 양식 > 태그를 제거하면 버튼 핸들러가 IE8에서 실행됩니다.

+0

이것은 해결책입니다. 감사! – Sam

0
내가 발견

를 응답하지 않는 버튼입니다 (팬 elForm). 또한 runat = "server"속성이있는 태그가 표시되지 않습니다 (마스터 페이지에있을 수도 있음). 마스터 페이지에 폼이 없으면 버튼이 폼 안에있는 것처럼 보이지 않습니다.

문제는 Asp.NET WebForms의 한 페이지에만 하나의 양식 만있을 수 있다는 것입니다. < 양식이 페이지에 runat = "server"> 태그가 없으면 코드 숨김에 이벤트가 발생하지 않습니다.

+0

제출 버튼이있는 페이지에 하나의 양식이 있습니다. 제출이 발생하면 결과가이 출력 패널에 배치되고 양식이 비활성화됩니다. 이 단추는 출력을 숨기고 양식을 다시 사용하도록되어 있습니다. – Sam

1

샘플 코드는 Button2_Click이지만 패널 외부의 버튼 마크 업은 이벤트 핸들러로 test_button_Click을 갖고 있습니까? 3 개의 단추가 있습니다. 그래서 어느 것이 당신에게 묻고 있습니까? 마지막으로 생각합니까?

+0

+1 - 정말 간단하다고 생각합니다. –

+0

죄송합니다. 코드가 수정되었습니다. 해당 마크 업과 관련된 것이 아니므로 테스트 중이었습니다. 게다가, 그것이 문제라면 파이어 폭스에서 작동하지 않을 것입니다, 그렇죠? – Sam

+0

이상하지만 사실입니다. @Joel Harris가 언급했듯이, ASP.NET은 페이지 내의 form 태그 일 뿐이며 ASP.NET은 한 가지 형식을 선호합니다.또는 문제를 확인하기 위해 두 가지 중 하나를 수행 할 수 있습니다. 마크 업을보고 __doPostBack ('

관련 문제