UpdatePanel与GridView和Progressbar无法正常工作

时间:2013-05-02 03:54:36

标签: c# asp.net asp.net-ajax progress-bar updatepanel

我需要帮助。我有一个点击按钮后触发的进度条。此按钮在SQL中运行存储过程,它将更新我稍后为gridview绑定的表,在运行存储过程后执行代码以更新gridview。问题是,在进度条出来后,我预计gridview会自动刷新/更新但是没有发生。请帮忙。

ASPX - GridView:

<asp:Panel ID="Panel1" runat="server" HorizontalAlign="Center">
<asp:UpdatePanel ID="UpdatePanel9" ChildrenAsTriggers="false" UpdateMode="Conditional" runat="server">

                <ContentTemplate>
                    <table cellpadding="0" cellspacing="0">
                        <asp:GridView ID="GridExportExcel" runat="server" >
...........Blah
                    </table>
            </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btnExecSP" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
</asp:Panel>

进度:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="false">
            <ProgressTemplate>
                <asp:Image ID="loading" runat="server" ImageUrl="loading.gif" />
            </ProgressTemplate>
        </asp:UpdateProgress>

按钮后面的代码: - 此存储过程大约需要3分钟。

 DataTable dt = new DataTable();
            GridExportExcel.DataSource = dt;
            GridExportExcel.DataBind();

            //UpdatePanel9.Update();

            string connectionString = WebConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString;

            string selectSQL = "exec dbo.StoredPRoc'" + txtcomp.Text + "','" + TextBox2.Text + "'";


            DataTable DT = new DataTable();
            DT = ExecGetData(selectSQL);

            header(); //Update the Gridview.

谢谢 - 伦兹


嗨布莱恩,谢谢你的回复。我不允许在表中创建索引。我做了一些工作并删除了进度条,它工作正常,虽然查询/ storedproc仍然执行3分钟。 gridview现在正在更新。如何在没有超时的情况下显示进度条?有没有办法做到这一点?感谢您的回复。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你很有可能超时,因此新的结果不会回来。要验证这一点,请尝试绑定到只需几秒钟运行的测试查询,并查看结果是否从中返回。如果这是真的,那么它就是查询。

您是否可以对查询进行任何效率,例如应用索引或使用替代查询方法?运行Web应用程序需要3分钟。