J'ai une page ASPX sur laquelle j'ai créé une table avec des TextBox. Je n'ai volontairement pas lié la table à des données via un FormView ou autre car même s'il n'y a pas de données, le tableau doit être affiché avec les contrôles etc...
Je fait donc un chargement des données par le code comme ceci:
Côté client, j'intercepte l'événement Change des TextBox. En fait, je pensais faire ainsi car j'ai remarqué que les valeurs n'étaient inscrites dans le DOM, ce que je fait de cette manière (je ne sais pas s'il y a un moyen spécifique de le faire):
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 Private Sub ChargerSaisieDestBoues() Dim ds As New dsSaisies Dim destBoues As New dsSaisiesTableAdapters.DEST_BOUES_EVACUEESTableAdapter destBoues.Fill(ds.DEST_BOUES_EVACUEES, ucFiltres.Ouvrage.SelectedValue, Convert.ToDecimal(ucFiltres.Annees.SelectedValue), Nothing) destBoues.Dispose() destBoues = Nothing If ds.DEST_BOUES_EVACUEES.Rows.Count > 0 Then For i As Integer = 1 To 11 For j As Integer = 0 To 10 With tbSaisieDestBoues Try If ds.DEST_BOUES_EVACUEES.Rows(j).Item("DEST") = CType(.FindControl("hfCode" & i), HiddenField).Value.ToString() Then CType(.FindControl("txtMS" & i), TextBox).Text = ds.DEST_BOUES_EVACUEES.Rows(j).Item("TONNES_MS") CType(.FindControl("txtPcentMS" & i), TextBox).Text = ds.DEST_BOUES_EVACUEES.Rows(j).Item("POURCENT_MS") CType(.FindControl("txtObs" & i), TextBox).Text = ds.DEST_BOUES_EVACUEES.Rows(j).Item("OBS") End If Catch ex As Exception Continue For End Try End With Next Next End If ds.Dispose() ds = Nothing End Sub
Code javascript : 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 <script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_endRequest(TriggerChangeTextBox); $(document).ready(function () { TriggerChangeTextBox(); }); function TriggerChangeTextBox() { for (var i = 1; i < 12; i++) { /* Permet de capturer l'évènement Change. */ $(':input[name$="txtMS' + i + '"]').trigger('change'); $(':input[name$="txtPcentMS' + i + '"]').trigger('change'); $(':input[name$="txtObs' + i + '"]').trigger('change'); /* Inscription de la valeur du TextBox directement dans le DOM, sinon la valeur ne sera pas considéré comme changée côté serveur. */ $(':input[name$="txtMS' + i + '"]').on('change', function () { $(this).attr('value', $(this).val()); }); $(':input[name$="txtPcentMS' + i + '"]').on('change', function () { $(this).attr('value', $(this).val()); }); $(':input[name$="txtObs' + i + '"]').on('change', function () { $(this).attr('value', $(this).val()); }); } } </script>
Le problème, c'est que du côté serveur, les données inscrites dans les TextBox n'ont pas changées lorsque je les modifient. Quelqu'un saurait-il d'où pourrait venir le problème ?
![]()
Partager