2013-11-22 99 views
0

我正在C#.net中使用twitter引導在frontoffice中的Web應用程序。 在onClick按鈕我需要顯示一個包含progressBar div的div,並且當該過程完成時,隱藏div。我使用此代碼:在C#中顯示和隱藏div不起作用

web.aspx

<asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="btnProcess_Click" /> 
    // on load web, this div is invisible 
<div class="progress progress-striped active invisible" id="progressBar" runat="server"> 
    <div class="bar" style="width: 90%;" id="percentProgresBar"></div> 
</div> 

而且我web.aspx.cs

protected void btnProcess_Click(object sender, EventArgs e){ 
// here change class to "visible" 
progressBar.Attributes["class"] = "progress progress-striped active visible"; 
//--- all my process ---- 
//--- all my process ---- 
//when my process finish, hide the div again, change the css class to "invisible" 
progressBar.Attributes["class"] = "progress progress-striped active invisible"; 
} 

我的問題是div是可見的,當我過程結束,而不是一開始。我該如何解決這個問題?爲了使之前可見的分區---我的所有進程----並完成我的代碼的一部分,使div再次不可見。

感謝您的幫助!

+2

您將無法影響服務器端的元素,您必須使用客戶端JavaScript來執行此操作並異步執行命令使用類似ajax的東西。 –

回答

-1

而不是使用這些類,使屬性Style =「display:none」隱藏和Style =「display:」使其可見但不符合您的目的。但對於顯示進度條,你可以簡單地使用更新進度

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="sm" runat="server" /> 
    <asp:UpdateProgress runat="server" id="PageUpdateProgress"> 
    <ProgressTemplate> 
     Loading... 
    </ProgressTemplate> 
</asp:UpdateProgress> 
<asp:UpdatePanel runat="server" id="Panel"> 
    <ContentTemplate> 
     <asp:Button runat="server" id="upd" onclick="updButton_Click" 
       text="click to update" /> 
    </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

在後面的代碼updButton_Click需要很長的時間來更新,期間你會看到加載的時期......在頁面上,你可以改變文本以使其更像一個ProgressBar(例如GIF移動條圖像)

+0

謝謝!! ..但是,我不明白你的代碼? – Patricio

+0

在更新面板中放置在內容模板上方的更新進度爲您完成工作。不僅用於按鈕點擊,還用於任何服務器端事件。記住你需要有一個腳本管理器。 @Patricio –