Bonjour

en cliquant sur un linkbutton contenu dans le HeaderTemplate de mon DetailsView, je change le mode de ReadOnly à Insert. Mais voilà le code que j'ai écris dans le handler ModeChanged n'est jamais exécuté ???

ci-dessous le code de mon DetailsView :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
    <asp:DetailsView ID="DetailsViewHoldingAddress" runat="server"
        AutoGenerateRows="False" 
        DataKeyNames="HoldingId,AddressId"
        DataSourceID="odsHoldingAddress" 
        AllowPaging="True"
        OnModeChanged="DetailsViewHoldingAddress_ModeChanged" OnModeChanging="DetailsViewHoldingAddress_ModeChanging">
        <Fields>
            <asp:BoundField DataField="HoldingId" HeaderText="HoldingId" ReadOnly="True" SortExpression="HoldingId" Visible="False" />
            <asp:BoundField DataField="AddressId" HeaderText="AddressId" ReadOnly="True" SortExpression="AddressId" Visible="False" />
            <asp:TemplateField HeaderText="Address Name :" SortExpression="AddressName">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBoxEditAddressName" runat="server" Text='<%# Bind("AddressName") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditAddressName" runat="server" ControlToValidate="TextBoxEditAddressName" Text="*" ValidationGroup="Holding" />
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBoxInsertAddressName" runat="server" Text='<%# Bind("AddressName") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertAddressName" runat="server" ControlToValidate="TextBoxInsertAddressName" Text="*" ValidationGroup="Holding" />
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="LabelItemAddressName" runat="server" Text='<%# Bind("AddressName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="CreationDate" HeaderText="Creation Date :" SortExpression="CreationDate" ReadOnly="True" InsertVisible="False"/>
            <asp:BoundField DataField="LastUpdateDate" HeaderText="Last Update Date :" SortExpression="LastUpdateDate" ReadOnly="True" InsertVisible="False"/>
            <asp:CheckBoxField DataField="IsAvailable" HeaderText="Is Available :" SortExpression="IsAvailable" />
            <asp:TemplateField HeaderText="Street :" SortExpression="Street">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBoxEditStreet" runat="server" Text='<%# Bind("Street") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditStreet" runat="server" ControlToValidate="TextBoxEditStreet" Text="*" ValidationGroup="Holding" />
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBoxInsertStreet" runat="server" Text='<%# Bind("Street") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertStreet" runat="server" ControlToValidate="TextBoxInsertStreet" Text="*"  ValidationGroup="Holding" />
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="LabelItemStreet" runat="server" Text='<%# Bind("Street") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="ZipCode :" SortExpression="ZipCode">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBoxEditZipCode" runat="server" Text='<%# Bind("ZipCode") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditZipCode" runat="server" ControlToValidate="TextBoxEditZipCode" Text="*" ValidationGroup="Holding" />
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBoxInsertZipCode" runat="server" Text='<%# Bind("ZipCode") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertZipCode" runat="server" ControlToValidate="TextBoxInsertZipCode" Text="*" ValidationGroup="Holding" />
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="LabelItemZipCode" runat="server" Text='<%# Bind("ZipCode") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City :" SortExpression="City">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBoxEditCity" runat="server" Text='<%# Bind("City") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditCity" runat="server" ControlToValidate="TextBoxEditCity" Text="*" ValidationGroup="Holding" />
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBoxInsertCity" runat="server" Text='<%# Bind("City") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertCity" runat="server" ControlToValidate="TextBoxInsertCity" Text="*"  ValidationGroup="Holding" />
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="LabelItemCity" runat="server" Text='<%# Bind("City") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="State" HeaderText="State :" SortExpression="State"/>
            <asp:TemplateField HeaderText="Country :" SortExpression="Country">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBoxEditCountry" runat="server" Text='<%# Bind("Country") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditCountry" runat="server" ControlToValidate="TextBoxEditCountry" Text="*"  ValidationGroup="Holding" />
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBoxInsertCountry" runat="server" Text='<%# Bind("Country") %>'></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertCountry" runat="server" ControlToValidate="TextBoxInsertCountry" Text="*" ValidationGroup="Holding" />
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="LabelItemCountry" runat="server" Text='<%# Bind("Country") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
        <HeaderTemplate>
            <asp:Literal ID="LiteralAddress" runat="server" Text="Addresse(s) :" />
            &nbsp
            <asp:LinkButton ID="LinkButtonAddressNew" runat="server" Text="New" OnClick="LinkButtonAddressNew_Click" Visible="False" OnLoad="LinkButtonAddressNew_Load" />
            <asp:LinkButton ID="LinkButtonAddressCancel" runat="server" Text="Cancel" OnClick="LinkButtonAddressCancel_Click" Visible="False"/>
            <asp:LinkButton ID="LinkButtonAddressSave" runat="server" Text="Save" OnClick="LinkButtonAddressSave_Click" Visible="False"/>
        </HeaderTemplate>
        <EmptyDataTemplate>
            <asp:Literal ID="LiteralAddress" runat="server" Text="Addresse(s) :" />
            &nbsp
            <asp:LinkButton ID="LinkButtonAddressNew" runat="server" Text="New" OnClick="LinkButtonAddressNew_Click" Visible="false" OnLoad="LinkButtonAddressNew_Load" />
            <asp:LinkButton ID="LinkButtonAddressCancel" runat="server" Text="Cancel" OnClick="LinkButtonAddressCancel_Click" Visible="False"/>
            <asp:LinkButton ID="LinkButtonAddressSave" runat="server" Text="Save" OnClick="LinkButtonAddressSave_Click" Visible="False"/>           
        </EmptyDataTemplate>
        <RowStyle HorizontalAlign="Left" Width="150px" />
        <FieldHeaderStyle HorizontalAlign="Right" Width="150px" />
    </asp:DetailsView>
ensuite le code qui provoque le changement de mode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    protected void LinkButtonAddressNew_Click(object sender, EventArgs e)
    {
        DetailsViewHoldingAddress.ChangeMode(DetailsViewMode.Insert);
    }
et enfin le code qui n'est jamais exécuté :

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
    protected void DetailsViewHoldingAddress_ModeChanged(object sender, EventArgs e)
    {
        switch (((DetailsView)sender).CurrentMode)
        {
            case DetailsViewMode.Edit:
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressCancel")).Visible = false;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressSave")).Visible = false;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressNew")).Visible = true;
                break;
            case DetailsViewMode.Insert:
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressCancel")).Visible = true;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressSave")).Visible = true;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressNew")).Visible = false;
                break;
            case DetailsViewMode.ReadOnly:
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressCancel")).Visible = false;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressSave")).Visible = false;
                ((LinkButton)DetailsViewHoldingAddress.FindControl("LinkButtonAddressNew")).Visible = false;
                break;
        }
    }

Je n'arrive pas à comprendre pourquoi je ne passe jamais dans le handler de l'évênement alors que je n'ai aucune erreur et que mon detailsview change bien de mode d'affichage...