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