实现方法
设置 FlashViewer 控件的“UseClientApi” 属性为true,确保点击链接时可以出发客户端事件。在本示例中我们使用 Code Based 报表作为父报表,XML Based 报表作为子报表。
首先,我们需要设置 TextBox 的 Hyperlink” 属性为其文本值。
private void detail_Format(object sender, EventArgs e)
{
if (txtCountry1.Text != "")
{
txtCountry1.HyperLink = txtCountry1.Text;
}
}
在客户端的 OnLinkClick 事件中获取点击链接的值,传递给后台:
var viewer;
function init() {
GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer1", function () {
viewer = GrapeCity.ActiveReports.Viewer.Attach("WebViewer1");
viewer.setEventsHandler({
OnLinkClick: function (e) {
var _paramValue = e.Link;
viewer.LoadDocument("SectionReport2.rpx?parameter1=" + _paramValue + "&OutputFormat=Rdf3");
return true;
}
});
});
}
重新打开主报表的方法如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SectionReport1 rpt = new SectionReport1();
WebViewer1.Report = rpt;
Session["Report"] = rpt;
}
}
protected void btnLoad_Click(object sender, EventArgs e)
{
WebViewer1.Report = ((GrapeCity.ActiveReports.SectionReport)Session["Report"]);
}
效果图:

示例下载:
VS2010 + .NET 4.0 + C# + AR8 SP1