このプロジェクトでは、Spring.net IOC objects.xml ファイルと Spring.net XmlObjectFactory を使用して、分離コードでコントローラーのインスタンスを作成することでこれを「解決」しました。
ボタンについては、コード ビハインドに HtmlInputButton を追加し、onclick イベント ハンドラーを設定しました。これは、Dundas の OlapManager.GetCallbackEventReference() メソッドと、呼び出されたコントローラー メソッドへの呼び出しを提供する OLAP チャートに割り当てられた新しいコマンド ハンドラーを組み合わせて使用することで、非同期化されました。
Page_Load() 関数では:
OlapClient1.OlapChart.Command += new CommandEventHandler(OlapChart_Command);
SaveDci.Attributes["onclick"] =
OlapClient1.OlapManager.GetCallbackEventReference(OlapClient1.OlapChart, "SaveDci", typeof(OlapChart));
SaveSnapshot.Attributes["onclick"] =
OlapClient1.OlapManager.GetCallbackEventReference(OlapClient1.OlapChart, "SaveSnapshot", typeof(OlapChart));
OLAP コマンド ハンドラ:
private void OlapChart_Command(object sender, CommandEventArgs e)
{
if (e.CommandName.Equals("SaveDci"))
{
// Function to call appropriate controller method
SaveAsData(sender, e);
}
if (e.CommandName.Equals("SaveSnapshot"))
{
// Function to call appropriate controller method
SaveAsSnapshot(sender, e);
}
}
iFrame は、jQuery と OlapMananger.ExecuteClientScript() メソッドを使用した応答で更新されました。
OlapClient1.OlapManager.ExecuteClientScript("$('#UpdatePanel').text('" + returnMessage + "');");