【问题标题】:Progress bar Issue : End results not displaying进度条问题:未显示最终结果
【发布时间】:2011-10-27 14:46:57
【问题描述】:

我的进度条有问题。现在我已经浏览了溢出中的所有问题,并且我已经通过了大量的谷歌搜索。我可能忽略了一些东西,但我敢打赌这个问题是我一直忽略的问题。这是交易。

我的进度条似乎工作得很好。我正在使用 ajax,一切都在右侧面板中,当按下按钮时它会立即触发,实际上它会在进程完成后停止(尽管我不知道我是如何做到的)。请注意,这很简单。它只是一个GIF,没什么特别的。使用 Visual Studio 2010、SQL Server 2008、Ajax 和 C#。我没有使用 jquery 或 js,尽管我可能也有。

我的申请很简单。它将订单发送到不同的服务器,所以我在客户端。单击按钮后,订单将处于发送过程中。我的问题是,尽管正在发送订单,但当进度条停止并且该过程完成时,我的标签(成功或错误)和订单数据库表不会触发。为什么是这样?我觉得这很奇怪,因为应用程序发送订单,它 100% 运行,但用户端没有任何变化。

这是一些代码,如果您需要更多代码,请直接说出来。提前谢谢大家!

protected void Page_Load(object sender, EventArgs e)
{
    Initialize();
}

protected void Page_PreRender(object sender, EventArgs e)
{
}

protected void Button_Click(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(3000);
    Button btn = (Button)sender;
    KaplanFTP.BatchFiles bf = new KaplanFTP.BatchFiles();
    KaplanFTP.Transmit transmit = new KaplanFTP.Transmit();

    if (btn.ID == PutFTPButton.ID)
    {//code

    private void Initialize()
{//code   if success/notsuccess  labels will fire

如果有帮助,这里还有设计代码

    <body>
    <form id="form1" runat="server">
    <div class="mainPanel">
        <div>
            <h3>Number of Batches Created Today: <asp:Label runat="server" style="display:inline;" ID="BatchesCreatedLbl"></asp:Label></h3>
        </div>
        <div id="batchestoprocessdiv">
            <asp:Label runat="server" ID="BatchesToProcessLbl" Text="THERE IS AN ORDER BATCH TO PROCESS." CssClass="green"></asp:Label>
        </div>
        <asp:Label runat="server" ID="NoBatchesToProcessLbl" Text="There are no Order Batches to Process." CssClass="red" 
            Visible="false"></asp:Label>
             <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Button ID="PutFTPButton" runat="server" onclick="Button_Click" 
                    Text="Submit Orders" />
            </ContentTemplate>
        </asp:UpdatePanel>
        <span class="red">COUNTDOWN TO SUBMISSION!</span>
        <span id="timespan" class="red">

        </span>
        <asp:Label runat="server" ID="ErrorLabel" Visible="false" CssClass="red" Text="Error: "></asp:Label>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server" 
            AssociatedUpdatePanelID="UpdatePanel1">
            <ProgressTemplate>
<img alt="" class="style1" src="images/ajax-loader.gif" />
                <br />
                <asp:Label ID="Label1" runat="server" CssClass="red" Height="16px" 
                    Text="Sending Orders....Please Wait"></asp:Label>
            </ProgressTemplate>
            </asp:UpdateProgress>
        <br />
        <br />
        <br />
        <asp:Label runat="server" ID="SuccessLabel" Visible="false" CssClass="green" Text="Batch has been processed and uploaded successfully."></asp:Label>
    </div>
    <div id="OrdersInfoDiv" runat="server" visible="false">

        <asp:GridView ID="BatchDetails" Caption="Details of orders ready to be sent" runat="server" AutoGenerateColumns="true" 
        CssClass="InfoTable" AlternatingRowStyle-CssClass="InfoTableAlternateRow" >
        </asp:GridView>
    </div>
    <div id="OrdersSentDiv" class="mainPanel" runat="server" visible="false">
        <h4>Sent Orders</h4>
    </div>
    </form>

    <script src="js/SendOrders.js" type="text/javascript"></script>


</body>

【问题讨论】:

    标签: c# asp.net sql-server visual-studio progress-bar


    【解决方案1】:

    将下载完成后要刷新的所有内容放入更新面板UpdateMode="Always"

    【讨论】:

    • 所以你的意思是把所有标签/数据库表放到那个 updatePanel 中?
    • 你能澄清一下,你的意思是什么数据库表?
    • 抱歉,我添加了gridview。
    • 是的,由于您在 UpdatePanel 中处理按钮的单击事件,因此您需要将所有要刷新的控件放入同一个 UpdatePanel 或另一个具有 UpdateMode Always 或在该 UpdatePanel 上设置“条件”UpdateMode并在 Button_Click 方法中对其显式调用 Update 方法。
    • 非常感谢您的帮助!我知道这很简单!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多