在Web应用程序中使用C#显示图像

在Web应用程序中使用C#显示图像,c#,web-applications,C#,Web Applications,我有一个Web应用程序,我在其中构建了一个生成报告的C#类。生成此报告需要将近40秒,因为它在数百个文件夹中搜索特定文件。因此,我希望有一种方法可以在生成此报告时显示“加载…”图标。我有一个gif存储在我的图像文件夹,这将是完美的。我在这一点上所做的研究主要是关于picturebox和可以保存图像的图像控件,但我希望有一种方法可以在创建报表时在报表上方显示图像 该Web应用程序来自Web ADF Geocortex网站,我再次创建了一个生成此报告的C#类。下面是一些可能有帮助的代码 /// &l

我有一个Web应用程序,我在其中构建了一个生成报告的C#类。生成此报告需要将近40秒,因为它在数百个文件夹中搜索特定文件。因此,我希望有一种方法可以在生成此报告时显示“加载…”图标。我有一个gif存储在我的图像文件夹,这将是完美的。我在这一点上所做的研究主要是关于picturebox和可以保存图像的图像控件,但我希望有一种方法可以在创建报表时在报表上方显示图像

该Web应用程序来自Web ADF Geocortex网站,我再次创建了一个生成此报告的C#类。下面是一些可能有帮助的代码

/// <summary>
    /// Generates HTML for the current report using the data in
    /// the given table.
    /// </summary>
    /// <param name="reportLayers">The layers to include in the report.</param>
    /// <returns>
    public override string GenerateReportHtml(List<ReportLayer> reportLayers)
    {
        StringBuilder htmlString = new StringBuilder();
        StringWriter stringWriter = new StringWriter(htmlString);
        HtmlTextWriter writer = new HtmlTextWriter(stringWriter);



        string holdAPI = "";

        List<string> exclusions = GetExcludedFields();

        foreach (ReportLayer layer in reportLayers)
        {
            string[] strFiles = null;
            Boolean val = false;

            if (layer.Layer.Name == "Bottom Hole Location (OP)")
            writer.RenderBeginTag(HtmlTextWriterTag.P); // <p>
            writer.RenderBeginTag(HtmlTextWriterTag.Strong); // <strong>
            writer.Write(layer.Layer.Name);

            writer.RenderEndTag(); // end </strong>
            writer.RenderEndTag(); // end </p>

            writer.WriteBreak(); // <br />
            foreach (ReportFeature feature in layer.ReportFeatures)
            {

            // each feature will be in a table
                writer.RenderBeginTag(HtmlTextWriterTag.Table); // <table>

                foreach (ReportField field in feature.ReportFields)
                {
                    string fieldName = field.Alias;
                    if (!exclusions.Contains(fieldName))
                    {
//
///使用中的数据为当前报告生成HTML
///给定的表。
/// 
///要包含在报告中的图层。
/// 
公共重写字符串GenerateReportHtml(列表报表层)
{
StringBuilder htmlString=新的StringBuilder();
StringWriter StringWriter=新的StringWriter(htmlString);
HtmlTextWriter writer=新的HtmlTextWriter(stringWriter);
字符串holdAPI=“”;
列表排除项=GetExcludedFields();
foreach(reportLayers中的ReportLayer层)
{
字符串[]strFiles=null;
布尔值=假;
如果(layer.layer.Name==“井底位置(OP)”)
writer.RenderBeginTag(htmltextwittertag.P);//

writer.RenderBeginTag(htmltextwittertag.Strong);// writer.Write(层、层、名称); writer.renderndtag();//结束 writer.renderndtag();//结束

writer.WriteBreak();//
foreach(图层中的ReportFeature功能。ReportFeatures) { //每个功能都将在一个表中 writer.RenderBeginTag(htmltextwittertag.Table);// foreach(feature.ReportFields中的ReportField字段) { 字符串fieldName=field.Alias; 如果(!Exclutions.Contains(fieldName)) {

一个水晶报表,一个SSR报告,一个自定义报告?这是有区别的,但是如果你能确定报告何时完成加载。我会考虑使用客户端JavaScript来显示一个图像,然后在加载完报告后删除该图像。除非你给我们一些代码示例,否则很难给你更多的图像。在您的问题中进行详细说明。

听起来像是JQuery的一项工作……我想这里谈谈您试图实现的目标

它将沿着

  • 页面加载。--将spinner.gif插入将包含报表的div中间
  • 使用JQuery获取报告url,并将其设置为用请求的结果填充div
  • 加载报告时,它应显示在所述div中
  • 使用此html

    <div id="rpt">
        <img src="Images/Load.Gif" />
    </div>
    
    
    
    然后在document.ready.上创建jQuery ajax

    <script type="text/javascript">
        $(function() {
            $.post("/path/to/report", function(reportHtml) {
                $("#rpt").html(reportHtml);
            });
        });
    </script>
    
    
    $(函数(){
    $.post(“/path/to/report”),函数(reportHtml){
    $(“#rpt”).html(reportHtml);
    });
    });
    

    当ajax调用返回时,您将用report替换div html。这将删除图像。

    我们需要更多详细信息。您的问题含糊不清,令人困惑。谢谢您给我负面的观点。我对这方面很陌生……我将发布更多信息我有一个名为Load.gif的图像,它位于我的Web应用程序的图像文件夹中。我有一个C类这会创建一个报告,生成此报告需要40秒,因此我想显示一个图像,说明它正在加载。我一直在做研究,我知道有很多方法可以显示图像,但希望有一种方法可以显示图像,而无需预设图片框或某种图像控件。我能不能不调用图像它出现在我的报告上面了吗?Josh——你可以编辑你的原始问题(而不是以评论的形式发布更新)。这有助于提高问题(及其答案)的质量。@danswain:我会将其修改为“JavaScript框架”,而不是专门的jQuery。