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 :
ensuite le code qui provoque le changement de mode :
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) :" />   <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) :" />   <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>
et enfin le code qui n'est jamais exécuté :
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); }
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...
![]()
Partager