2013-11-22 60 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 –