Bonjour à tous !

Je me retrouve confronté à un problème concernant la bascule entre deux View d'un MultiView imbriqué dans un FormView... !

Pour résumer mon problème :

Dans l'optique d'un projet e-commerce, je suis en train de monter une interface pour la création d'un produit, dont toutes les informations seront stockées dans une table "T_Prod" de ma base de données.

Pour réaliser cela, j'ai déposer un FormView dans mon WebForm. Je l'ai ensuite lié à un contrôle SqlDataSource pointant vers ma fameuse table "T_Prod".

Seulement je voudrai que certains champs présent dans ce "FormView" soient, à la base, cachés. Ils n'apparaîtraient que si une CheckbBox bien précise est cochée.
Plus concrètement, un produit est susceptible de comporter une notice : si on clique sur la CheckBox "Notice", alors le TextBox "TB_PrixNot" (dans lequel on renseigne le prix de cette notice) apparaît, ainsi que d'autres informations propres à la notice...

Pour ce faire, j'ai placé un MultiView au sein de mon FormView :

Code ASPX :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<asp:FormView ID="FV_NouveauProd" runat="server" DataKeyNames="Id_Prod" DataSourceID="DS_Prod" DefaultMode="Insert" RenderOuterTable="False">
<InsertItemTemplate>
  <div id="etape1" class="item">
    <h2>Informations générales</h2>
    <table>
      <tr>
        <td><label for="CB_Not">Notice</label></td>
        <td colspan="2"><asp:CheckBox ID="CB_Not" runat="server" AutoPostBack="True" oncheckedchanged="CB_Not_CheckedChanged" ClientIDMode="Static" /></td>
        <td></td>
      </tr>
      <asp:MultiView ID="MV_Not" runat="server">
        <asp:View ID="V_Not1" runat="server"></asp:View> <!-- On affiche rien à la base -->
        <asp:View ID="V_Not2" runat="server"> <!-- Si on clique sur la CheckBox, on affiche ça -->
          <tr class="fantome">
            <td></td>
            <td><label for="TB_RefNot">Référence *</label></td>
            <td><asp:TextBox ID="TB_RefNot" runat="server" Text='<%#Bind("RefNot_Prod")%>' MaxLength="8" ClientIDMode="Static" /></td>
            <td>
              <asp:RequiredFieldValidator ID="RFB_RefNot" runat="server" [...]>* Champ obligatoire.</asp:RequiredFieldValidator>
              <asp:RegularExpressionValidator ID="REV_RefNot" runat="server" [...]>Format non valide.</asp:RegularExpressionValidator>
            </td>
          </tr>
        </asp:View>
      </asp:MultiView>
    </table>
  </div>
</InsertItemTemplate>
</asp:FormView>
Code-behind (VB.NET) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Imports System.IO

Partial Class Cms_Default
    Inherits System.Web.UI.Page

    Dim MV_Not As MultiView

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
			'Récupération du MultiView "MV_Not"
            MV_Not = TryCast(FV_NouveauProd.FindControl("MV_Not"), MultiView)
			'Définition de la vue par défaut
            MV_Not.ActiveViewIndex = 0
        End If
    End Sub

    Protected Sub CB_Not_CheckedChanged(sender As Object, e As System.EventArgs)
		'Afficher l'autre vue du MultiView
        MV_Not.ActiveViewIndex = 1
    End Sub

End Class
Mais impossible de basculer à l'autre vue de cette façon. En effet j'obtiens l'erreur suivante :

La référence d'objet n'est pas définie à une instance d'un objet.
Des idées pour résoudre ce problème ?

Merci d'avance