我有一个像下面的代码这样的事件处理程序:
viewer.LocalReport.SubreportProcessing += new Microsoft.Reporting.WebForms.SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
将此方法作为上面事件处理程序的参数:
private static void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) {
DateTime movementDate = Convert.ToDateTime(e.Parameters[0].Values[0]);
TourTransactionsController controller = new TourTransactionsController();
var movement = controller.Movements();
List<Movement> movementList = new List<Movement>();
movementList.Add(new Movement {
Destination = "TEST",
MovementDescription = "TEST",
DateTime = Convert.ToDateTime("2017-09-25")
});
e.DataSources.Clear();
e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource() {
Name = "DSMovements",
Value = movementList
});
//throw new NotImplementedException();
}
这两个方法都是在 WEB API 控制器中编写的。事件处理程序在调试时命中,但在调试时按 F11(步入)后,
LocalReport_SubreportProcessing
方法未命中。为什么 LocalReport_SubreportProcessing
方法没有命中?
非常感谢任何帮助或回答。
注册时不会调用事件/
add
+=
它们。
当所属类调用事件时,事件将被调用。
public class EventTest
{
void SomeOperation()
{
//Do something
}
public void Run()
{
SomeOperation();
RunFinished?.Invoke(this, EventArgs.Empty); //Invoke the event, indicating that something has happened or finished
}
//The event itself
public event EventHandler RunFinished;
}
public class EventSubscriber
{
EventTest _ET = new EventTest();
public EventSubscriber()
{
_ET.RunFinished += ETRunFinished; //Register my method, called when the event occurs (is invoked)
}
public void DoSomething()
{
_ET.Run();
Console.WriteLine("Something completed.");
}
void ETRunFinished(object sender, EventArgs e)
{
Console.WriteLine("My event handler was executed.");
}
}
事件触发时将调用您的处理程序。
注册
+=
或 -=
取消注册(添加/删除)时,它们不会被调用。
更多详细教程请参考MSDN。