我正在尝试为我正在处理的项目实施 MVP 模式(使用 webforms),但是我陷入了事件之后该怎么做的困境,特别是源自 gridview 的事件。目前,视图实现了一个接口,以便演示者可以调用视图上的方法。
我的gridview 包含了本质上是一些缩减的员工对象(尽管它不知道这一点),每个对象都有一个我已经必须隐藏在网格中的ID。
当在网格行上按下某些按钮时,可能会发生不同的事件(例如,删除、添加到作业等)。演示者需要访问员工 ID 才能执行功能(这可能会触发具有所述 ID 的服务层命令)。我试图让视图保持被动,但我认为在这个例子中这是不可能的。
在我看来,只有少数几种方法可以做到这一点。
在gridrow select上,在View的状态(不是gridrow id)中填充一个“选定的ID字段”,并触发通知演示者(事件或演示者调用)。演示者随后将访问此字段。选择事件需要从 gridview 推断 ID。
将 Id 直接传递给演示者,通过演示者通知上的参数(或事件参数,如果使用事件通知演示者)。选择事件需要从 gridview 推断 ID。
如果这是一个下拉列表,那将很容易,因为您可以只使用 GetSelectedValue,并在此周围有一个包装器方法(实现视图接口方法)。
希望你能帮忙。
谢谢。