ASP.Net/VB.Net - Le contenu des TextBox n'a pas changé côté serveur
:salut:
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:
Code:
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 |
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:
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 ?
:merci: