完全に機能しているVS2010のReportViewer(rdlc)コントロールを使用して、AzureWebアプリケーションにレポートを表示しています。最近、クライアントから、ReportViewerのPrintイベントをキャプチャして、サーバーにエントリを記録するように求められました。印刷ボタンでフックしました。これは、ローカル環境でWebアプリケーションを実行するときに完全に機能します。ただし、Azureでは、Ajaxメソッドがクライアント側から呼び出されることはありません。何をすべきか提案してください?Azure環境でのAjaxに制限はありますか?
Page_Loadのページをコードビハインドで登録しています
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Pages.Report));
ImageButton btnPrint = new ImageButton();
btnPrint = ((ImageButton)(this.FindControl("ctl00$" + ReportViewer1.ClientID.Replace("_","$") + "$ctl06$ctl06$ctl00$ctl00$ctl00")));
btnPrint.Attributes["onclick"] += "attachEventForPrint();";
}
[AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
public static void LogEvent(int pLoggingEvent)
{
// Addded logic to log event
}
そしてASPXファイルではJSに以下の機能が追加されました
function attachEventForPrint() {
if (typeof (Report) != "undefined") {
Report.LogEvent(4);
}
}