And*_*rew 10 asp.net events reportviewer
我正在尝试在ReportViewer控件完成渲染时触发事件(以删除自定义进度/状态指示器).我已经探索了ReportViewer控件的事件,我似乎无法找到报告完成时实际触发的事件.
我正在使用Visual Studio 2010和ASP.NET 4.
谢谢你的帮助.
Mat*_*att 13
我知道这是旧的,但我对投票方法不满意.您可以更改isLoading而不是注册一个属性更改侦听器(如描述在这里).
总之,在脚本管理器中添加一些javascript,例如在表单元素中:
<asp:ScriptManager ID="scriptManager" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Reports/ReportViewer.js" />
</Scripts>
</asp:ScriptManager>
<rsweb:ReportViewer ID="reportViewer" runat="server"/>
Run Code Online (Sandbox Code Playgroud)
然后将其挂钩并在ReportViewer.js中添加您需要的任何客户端逻辑:
Sys.Application.add_load(function () {
$find("reportViewer").add_propertyChanged(viewerPropertyChanged);
});
function viewerPropertyChanged(sender, e) {
if (e.get_propertyName() == "isLoading") {
if ($find("reportViewer").get_isLoading()) {
// Do something when loading starts
}
else {
// Do something when loading stops
}
}
};
Run Code Online (Sandbox Code Playgroud)
一种选择是连续轮询客户端ReportViewer api的isLoading属性.如果isLoading属性返回true,则继续显示进度指示器,如果返回false则隐藏它并停止轮询.
我自己没有尝试过但是根据文档看起来它应该可行.