我的頁面上有一個下拉列表,一個標籤和一個CR查看器。當我從DD選擇報告時,我更新標籤以顯示當前選定的報告,並更新CRV以顯示報告。如何在回發後製作Crystal Report Viewer顯示報告
標籤更新正常,我只是把它放在那裏作爲一個測試,以確保其他控件進行了適當的更新。另一方面,CRV始終是一個要求。我選擇了一份報告,但沒有顯示出來。我選擇另一份報告,然後顯示出我之前選擇的報告。
下面的代碼貼得從之前我加了標籤,但沒有別的改變。
using System;
using DataAccess;
using CrystalDecisions.CrystalReports.Engine;
namespace Reporting
{
public partial class CRViewer : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
ReportDropDown.Items.Add("Select a report");
var reports = Data.ExecutSql("select * from ngmasterdb..reports");
while (reports.Read()) ReportDropDown.Items.Add(reports["Name"].ToString());
reports.Close();
}
protected void ReportDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
var reportInfo = Data.ExecutSql("select * from ngmasterdb..reports where Name = '" + ReportDropDown.SelectedValue.Replace("'", "''") + "'");
try
{
ReportDocument rptdoc = new ReportDocument();
if (!reportInfo.Read()) return;
var file = reportInfo["ReportFile"].ToString();
if (file == null || file.Trim() == "") return;
ReportSource.Report.FileName = file;
CrystalReportViewer1.RefreshReport();
}
finally
{
reportInfo.Close();
}
}
}
}
我相信在aspx中唯一感興趣的是AutoPostBack設置爲DropDown控件的true。如果你仍然希望看到aspx,但讓我知道,我會發布它。
你應該向我們展示你的SelectedIndexChanged事件處理程序。何時,何地以及如何綁定DropDownList? – 2012-04-24 20:56:10
@TimSchmelter,從他看起來像他正在使用的問題 – Habib 2012-04-24 20:57:21
@ Habib.OSU:他正在使用什麼?我沒有說他應該處理SelectedIndexChanged事件。我已經說過他應該向我們展示這個處理程序,以便我們可以看到發生了什麼問題。 – 2012-04-24 20:58:46