J'ai récupéré des données de mon formulaire Web et les ai mises dans un objet en utilisant Javascript sur button_click
. J'ai alors essayé d'utiliser Ajax
et JSON
pour passer l'objet à une méthode dans mon code C#.Passer des objets Javascript à C#
Javascript:
$(document).ready(function() {
$("#go").click(function() {
$('#<%=gv_Rota.ClientID%>')
.find('tr')
.each(function (row) {
$(this).find('select')
.each(function (col) {
$ctl = $(this)
if ($ctl.is('select')) {
var shift = $ctl.val();
var day = row;
var wk = col + 1;
var objectitem = { ShiftId: shift, Day: day, Week: wk };
$.ajax({
url: '/Administration.aspx/StoreObject',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ myObject: objectitem })
});
}
});
});
});
});
C# derrière:
[WebMethod]
public static void StoreObject(string[] myObject)
{
}
Dans le Javascript, vous pouvez voir que les boucles autour d'un GridView et trouve le selectedvalues
de DropDownLists à l'intérieur du GridView. Par conséquent, le Javascript va s'exécuter plusieurs fois, ce qui signifie que plusieurs objets vont être passés. Comment puis-je sauvegarder tous ces objets passés à C# dans les lignes d'un DataTable, par exemple, qui peut ensuite être utilisé lorsque j'appuie sur un bouton 'Enregistrer'. Premièrement, je ne suis pas sûr de ce qui se passe dans la méthode StoreArray
, et deuxièmement, je ne suis pas sûr de ce qui serait le meilleur moyen de conserver le DataTable par exemple (si c'est ce que je stocke mes objets), après avoir appuyé sur "Enregistrer" bouton et PostBack
, comme je suis sûr qu'il serait réinitialisé à cause de cela?
c'est un objet non tableau qui est passé de js –
@EhsanSajjad Question éditée. Merci pour la correction. – EliotE123
il est encore objet pas tableau –