На моей странице есть раскрывающийся список, метка и средство просмотра CR. Когда я выбираю отчет из DD, я обновляю метку, чтобы показать текущий выбранный отчет, и я обновляю CRV, чтобы показать отчет.
Метка обновляется нормально, и я просто поместил ее в качестве теста, чтобы убедиться, что другие элементы управления обновляются правильно. 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 имеет значение true для элемента управления DropDown. Если вы все еще хотите увидеть aspx, дайте мне знать, и я опубликую его.
Data.ExecutSql
выглядит как самодельный DB-класс, не так ли? Может быть не очень хорошей идеей в ASP.NET (если вы используете статические соединения и т.д.) connection-the-connections-curren/9707060#9707060" title="executereader требует открытого и доступного соединения, для которого текущие соединения"> stackoverflow.com/questions/9705637/ - person Tim Schmelter   schedule 25.04.2012