Question

Je viens de commencer à utiliser le modèle MVP dans la grande application ASP.NET que je construis (en fait, je reconstruis) et j'ai du mal à comprendre comment utiliser les événements appliqués à la vue.

Supposons que j'ai 2 listes déroulantes dans un contrôle utilisateur, dont l'une dépend de la valeur de l'autre :

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucTestMVP.ascx.vb" Inherits=".ucTestMVP" %>    
<asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="True" />
<asp:DropDownList ID="ddlCity" runat="server" />

Comment l’événement AutoPostBack doit-il être défini dans l’interface ?S'il s'agit d'un événement géré par le contrôle utilisateur comme ceci :

Public Partial Class ucTestMVP
  Inherits System.Web.UI.UserControl
  Implements ITestMVPView

  Protected Sub PageLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
      Dim presenter As New TestMVPPresenter(Me)
      presenter.InitView()
    End If
  End Sub

  Private Sub ddlCountrySelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlCountry.SelectedIndexChanged
    Dim presenter as New TestMVPPresenter(Me)
    presenter.CountryDDLIndexChanged()
  End Sub

End Class

Ou faut-il qu'un événement soit défini au niveau de l'interface ?S'il s'agit du modèle préféré, comment puis-je ajouter des événements à gérer et à utiliser ?

Était-ce utile?

La solution

Je ne sais pas s'il existe un modèle universellement préféré.J'ai tendance à préférer ajouter l'événement à l'interface d'affichage et demander au présentateur de répondre à la vue.J'ai décrit ce modèle dans plus de détails ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top