C# 在MVP模式中处理网格事件

C# 在MVP模式中处理网格事件,c#,asp.net,mvp,webformsmvp,C#,Asp.net,Mvp,Webformsmvp,应用程序正在使用MVP-被动视图模式,我们了解到aspx.cs中的所有事件都需要调用presenter方法,而不是直接访问模型 我们使用gridview来显示数据,其中一个列的颜色必须根据标志而改变,并且需要添加一些文本。然而,我们不确定如何将代码移到演示者下面,以便能够编写单元测试 protected void dqGrid_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { if (e

应用程序正在使用MVP-被动视图模式,我们了解到aspx.cs中的所有事件都需要调用presenter方法,而不是直接访问模型

我们使用gridview来显示数据,其中一个列的颜色必须根据标志而改变,并且需要添加一些文本。然而,我们不确定如何将代码移到演示者下面,以便能够编写单元测试

protected void dqGrid_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
  var creditOrDebit = ((Label)e.Row.FindControl("lblCreditOrDebit")).Text;
  if(creditOrDebit == "Debit")
  {
     Label lblAmount = ((Label)e.Row.FindControl("lblAmount"));
     lblAmount.CssClass = "txtRed";
     lblAmount.Text = "-" + lblAmount.Text;
  }
}
}
编辑:


我们曾考虑在presenter中使用一个函数,该函数将amount作为输入并返回css,但作为一个指导原则,我们发现presenter中的所有方法都需要无效,因为它已经具有View属性。

看看是的,在我粘贴的代码中,我不确定如何在视图中创建一个属性,允许我们为每一行应用css。