Je crée dynamiquement mes cases à cocher html lors de l'exécution en utilisant javascript / jquery comme celui-ci. Il utilise la grille de démarrage Jquery.

 isAssigned: function (column, row) {
                    if (row.isAssigned == "True" || row.isAssigned == "true") {
                        return "<input id='chk" + row.id + "' type='checkbox' name='chkMarks' checked='" + row.isAssigned + "' />";
                    }
                    else {
                        return "<input id='chk" + row.id + "' type='checkbox' name='chkMarks'/>";
                    }
                }

Ce que je dois faire, c'est en quelque sorte obtenir les valeurs de l'événement click de mes boutons d'envoi dans le code aspx.cs derrière. Je ne peux pas exécuter ces contrôles = "serveur" car l'ID n'est ajouté qu'après le chargement de la page. J'ai besoin d'obtenir les identifiants et s'ils sont vrais ou faux.

Je me demandais si quelqu'un connaissait la meilleure approche pour moi pour obtenir ces valeurs dans quelque chose comme ça.

    protected void myTester_Click(object sender, EventArgs e)
    {
        var values = Request["chkMarks"].ToString();
    }
2
user5375600 9 mars 2016 à 16:33

3 réponses

Meilleure réponse

Tu l'as presque eu! Vous devez utiliser Request.Form au lieu de simplement Request. Cela devrait vous donner accès à tous vos éléments DOM.

var values = Request.Form["chkMarks"].ToString();

Voici quelques informations supplémentaires à ce sujet: https://msdn.microsoft.com/en-us/library/system.web.httprequest.form (v = vs.110) .aspx

0
Ageonix 9 mars 2016 à 13:45

Je l'ai fait en utilisant JSON à la fin en utilisant un postback donc pas asynchrone qui est, espérons-le, utile à quelqu'un.

   function BuildJSON() {
        var jsonObj = [];
        jQuery("input[name='chkMarks']").each(function () {
            item = {}
            item["id"] = this.id;
            item["isAssigned"] = this.checked;
            jsonObj.push(item);
        });
        var json = JSON.stringify(jsonObj);
        $('#<%= hiddenMarksID.ClientID %>').val(json);
     }

Dans le code derrière j'ai attaché un événement au bouton et ramassé le JSON comme ça ...

  protected void btnSubmitMarks_Click(object sender, EventArgs e)
    {
        string json = hiddenMarksID.Value;
        List<ChkMark> chkMark = new JavaScriptSerializer().Deserialize<List<ChkMark>>(json);

Voici le POCO ...

 public class ChkMark
{
    public string id { get; set; }
    public bool isAssigned { get; set; }
}
0
user5375600user5375600 10 mars 2016 à 08:50

Request.Unvalidated ["chkMarks"]

Peut également être utile selon la valeur de ce champ.

0
Kevin Damen 9 mars 2016 à 16:08