2014-05-20 2 views
0

내 ASPX 페이지에서 한 번 클릭 한 결과가 UpdatePanel을 사용하여 결과를 표시하므로 페이지 새로 고침없이 결과가 표시됩니다. 검색을 수행하는 기능은 여기에 있습니다 : 나는 위의 라벨에 "검색 중입니다 ... 잠시만 기다려주십시오"라는 메시지를 표시 할 수있는 방법ASPX 페이지 내에서 검색하는 동안 메시지를 표시하는 방법

<asp:Label runat="server" Text="" ClientIDMode="Static" ID="dispSearch" style="float: left;"></asp:Label> 

을 :

public void onBtnClick() { 
     Conn = new SqlConnection(cString); 
     Conn.Open(); 

     theGender = slcGender.SelectedItem.Text; 

     if (slcLocation.SelectedItem.Value == "") { 
      locVal = slcLocation.SelectedItem.Value; 
      lVal = "All Locations"; 
     } 
     if (slcLocation.SelectedItem.Value != "") { 
      locVal = slcLocation.SelectedItem.Text; 
      lVal = slcLocation.SelectedItem.Text; 
     } 
     if (slcSpecialty.SelectedItem.Value == "") { 
      speVal = slcSpecialty.SelectedItem.Value; 
      sVal = "All Specialties"; 
     } 
     if (slcSpecialty.SelectedItem.Value != "") { 
      speVal = slcSpecialty.SelectedItem.Text; 
      sVal = slcSpecialty.SelectedItem.Text; 
     } 

     if (slcGender.SelectedItem.Value == "") { 
      genVal = slcGender.SelectedItem.Value; 
      gVal = "Any Gender"; 
     } 
     if (slcGender.SelectedItem.Value != "") { 
      genVal = theGender.Substring(0, 1); 
      gVal = slcGender.SelectedItem.Text; 
     } 

     sqlCode = "SELECT * FROM [HERE]"; --example query 

     /* EXECUTE AND DISPLAY THE DATA IN THE ASP PAGE */ 


     using(SqlCommand command = new SqlCommand(sqlCode, Conn)) { 
      command.CommandType = CommandType.Text; 

      using (SqlDataReader reader = command.ExecuteReader()) { 
       if (reader.HasRows) { 
        rptContent.DataSource = reader; 
        rptContent.DataBind(); 
       } 
       if (!reader.HasRows) { 
        dlo.InnerHtml = "NO RESULT"; 
       } 
       int count = rptContent.Items.Count; 
       dlo.InnerHtml = "Your search in " + lVal + " by " + sVal + " and " + gVal + " returned "+count+" matches"; 
      } 
     } 
    } 

내 ASPX 페이지에 레이블이 완료되면 검색이 실행되고 "검색이 완료되었습니다"라는 메시지가 표시됩니까?

내 UpdatePanel :

<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server"> 
     <ContentTemplate> 
      <asp:UpdateProgress ID="TaskUpdateProgress" runat="server" DynamicLayout="False" AssociatedUpdatePanelID="UpdatePanel2" DisplayAfter="0"> 
      <ProgressTemplate> 
       <asp:Image ImageUrl="theImages/loadanim_ff.gif" Width="319px" Height="3px" runat="server" ID="TaskLoadingImage"/> 
      </ProgressTemplate> 
     </asp:UpdateProgress> 
      <div style="width: 100%; color: #000000; font-size: 16px; font-weight: bold;" ID="dlo" ClientIDMode="Static" runat="server"></div> 
<div style="width: 100%;"> 
    <asp:Repeater runat="server" ID="rptContent"> 
     <HeaderTemplate> 
      <table border="0" ID="tblInfo" style="background: #43A79A; width: 100%;" ClientIDMode="Static"> 
       <tr> 
        <td>Physician Name</td> 
        <td>Image</td> 
        <td>Gender</td> 
        <td>Office1</td> 
        <td>Office2</td> 
        <td>Office3</td> 
        <td>Office4</td> 
       </tr> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%# Eval("Physician Name").ToString() %></td> 
       <td><img src="http://wp.com/<%# Eval("Image").ToString() %>" /></td> 
       <td><%# Eval("Gender").ToString() %></td> 
       <td><%# Eval("Office1").ToString() %></td> 
       <td><%# Eval("Office2").ToString() %></td> 
       <td><%# Eval("Office3").ToString() %></td> 
       <td><%# Eval("Office4").ToString() %></td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
    </asp:Repeater> 
</div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnGoAll" /> 
     </Triggers> 
    </asp:UpdatePanel> 

답변

1

일반적인 방법은 UpdateProgress 컨트롤을 사용하는 것입니다. 부분 포스트 백 동안 사용자에게 진행 상황을 표시하기 위해 UpdatePanel과 함께 사용하도록 특별히 설계되었습니다.

+0

별도의 updatepanel을 사용해야합니까? 나는 displayprogress가 결과가 나타날 동일한 위치를 원하지 않는다. – Si8

+0

아니요 별도의 업데이트 패널이 아닙니다. UpdatePanel을위한'UpdateProgress' 컨트롤입니다. 스타일이 지정된 레이블을 포함하여 원하는 HTML 요소를 자유롭게 넣을 수 있습니다. UpdateProgress는 기본적으로 표시되지 않으며 지정된 시간 (기본값 500ms이지만 다시 구성 할 수 있음) 동안 다시 게시가 수행 된 후에 만 ​​표시됩니다. 그래서 그냥 폼에 UpdateProgrss를 추가하고 거기에 라벨을 붙이고 어떻게되는지 확인하십시오. 더 많은 예제를 보려면 내 대답에서 참조 할 링크를 참조하십시오. –

+0

검색이 빠르지 만 검색하는 동안 아무 것도 표시되지 않을 수 있습니다./ – Si8

관련 문제