2016-12-14 7 views
0

포스트 백 (다운로드 버튼) 이후에 clear panel 및 datagrdiview를 원합니다. 두 번째로 검색 데이터 (Query Button)를 클릭하면됩니다. DataGridview는 2 그리드와 2 패널을 표시합니다 (바인드가 작동하지 않고 그리드를 새로 고치지 않음).포스트 백 이후에 패널 및 데이터 그레이드 뷰를 삭제하는 방법은 무엇입니까?

첫 번째 그리드은 클릭 후 지워지지 않는 데이터입니다. 포스트 백. 두 번째 눈금은 새로운 데이터입니다.

디자인 ASPX C#을

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> 
<div style="padding: 5px 10px 5px 10px; text-align: center;"> 
    <asp:UpdatePanel ID="udpMain" runat="server" UpdateMode="Conditional" >   
    <ContentTemplate> 
    <asp:Panel ID="pnlQuery" Visible="true" runat="server"> 
    <fieldset style="width: 50%;"> 
     <legend>Query Conditions: </legend> 
     <table> 
     <tr> 
     <td> 
     //Condition Search   
     </td>         
     </tr>           
     <tr> 
     <td colspan="2" align="center"> 
     <table>           
      <tr> 
      <td>            
      <asp:Button ID="btnQuery" CssClass="btn" runat="server" Text=" Query " Visible="false" OnClick="btnQuery_Click" />  
      </td> 
      <td> 
      <asp:Button ID="btnClear" CssClass="btn" runat="server" Text=" Clear " Visible="false" OnClick="btnClear_Click" /> 
      </td>            
      </tr> 
     </table> 
     </td> 
     </tr>        
     </table> 
    </fieldset> 
    </asp:Panel> 

    <tr> 
    <td align="center">       
     <asp:Panel ID="pnDetails" runat="server" GroupingText="TAP File" Width="30%"> 
     <asp:GridView ID="gvDetail" runat="server" Width="30%" SkinID="gvSkSearch" PageSize="50" OnPageIndexChanging="gvDetail_PageIndexChanging" AutoGenerateColumns="False" 
OnRowDataBound="gvDetail_RowDataBound" > 
     <Columns> 
     //Condition Columns       
     </Columns> 
     </asp:GridView> 
    </asp:Panel>        
    </td> 
    </tr> 
    <tr> 
    <td align="center"> 
     <asp:Button ID="btnDownload" runat="server" CssClass="btn" OnClick="btnDownload_Click" Text=" Download " Visible="false" /> 
     <asp:Button ID="btnConfirmTAP" runat="server" CssClass="btn" OnClick="btnConfirmTAP_Click" Text=" Confirm send TAP " Visible="false" 
     Width="120px" /> 
     </td> 
    </tr> 
    </br> 
    </ContentTemplate> 
    <Triggers> 
    <asp:PostBackTrigger ControlID="btnDownload" /> 
    </Triggers>   
    </asp:UpdatePanel> 
</div> 
</asp:Content> 

C#을

public void btnQuery_Click(object sender, EventArgs e) 
{ 
    //.... dt = list data 

    if (dt != null && dt.Rows.Count > 0) 
    { 
     gvDetail.DataSource = dt; 
     gvDetail.DataBind(); 
     pnDetails.Visible = true; 
     btnDownload.Visible = true; 
     btnConfirmTAP.Visible = true; 
    } 
    else 
    { 
     pnDetails.Visible = false; 
     btnDownload.Visible = false; 
     btnConfirmTAP.Visible = false; 
    } 
} 

어떻게 분명히 다시 게시 후 패널과 DataGridView에. 감사 사전 :

+0

같은 패널을 지울 수 있습니다 (IsPostBack을!) - 그것은 작동하지 않는 이유는 무엇입니까? – Valkyrie

답변

0

null을 바인딩하여 GridView를 지울 수 있습니다.

GridView1.DataSource = null; 
GridView1.DataBind(); 

그리고 {당신의 조건} 다른 {당신의 조건} 경우이

Panel1.Controls.Clear();