【问题标题】:Display an Image using C# in Web Application在 Web 应用程序中使用 C# 显示图像
【发布时间】:2010-04-28 21:06:25
【问题描述】:

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

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))
                    {

【问题讨论】:

  • 我们需要更多细节。您的问题含糊不清。
  • 感谢您给我的负面评价。我是新来的……我会发布更多信息
  • 我有一个名为 Load.gif 的图像,它位于我的 Web 应用程序内的图像文件夹中。我有一个创建报告的 C# 类,该报告需要 40 秒才能生成,所以我想显示一个图像,说明它正在加载..
  • 我一直在做研究,我知道有很多方法可以显示图像,但希望有一种方法可以在不预设图片框或某种图像控件的情况下显示一个。我不能只调用图像并将其显示在我的报告上方吗?
  • Josh - 您可以编辑原始问题(而不是将更新发布为 cmets)。这有助于改进问题(及其答案)的质量。

标签: c# web-applications


【解决方案1】:

用这个 html...

<div id="rpt">
    <img src="Images/Load.Gif" />
</div>

然后在 document.ready 上使用 jQuery ajax post..

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

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

【讨论】:

    【解决方案2】:

    水晶报表、SSRS 报表、自定义报表?这会有所不同,但如果您可以确定报告何时完成加载。我会考虑使用客户端 javascript 来显示图像,然后在报告完成加载时删除该图像。真的很难给你更多,除非你给我们一些代码示例或在你的问题中详细说明。

    【讨论】:

      【解决方案3】:

      听起来像是 JQuery 的工作...这里是 an article,我认为它谈论的是您想要实现的目标。

      应该是这样的

      1. 页面加载。 -- 在包含报告的 div 中间插入一个 spinner.gif
      2. 使用 JQuery 获取报告 url 设置它以使用请求的结果填充 div。
      3. 当它加载报告时,它应该出现在上述 div 中。

      【讨论】:

      • @danswain:我会将其修改为“JavaScript 框架”而不是专门的 jQuery。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多