Question

J'ajoute dynamiquement des lignes à divStaff à l'aide de jquery:

$("span[id$='lblAddStaff']").click(function() {
        //$(".staff_tpl").find("input[id$='txtRate']").val("0,00");
        var staff_row = $(".staff_tpl");
        staff_row.find(".staff_row").attr("id", "Emp" + counter);
        $("div[id$='divStaff']").append(staff_row.html());
        counter += 1;            
    });

la ligne que j'ajoute se trouve à l'intérieur du div masqué avec class = & "; .staff_tpl &"; J'ajoute le contenu de cette div à divStaff

Lorsque je soumets la page (publication), le divStaff résultant est toujours vide si j'essaie de l'afficher comme suit:

lblTest.Text = divStaff.innerHtml.ToString

fondamentalement, je manipule un côté client div et je veux y accéder côté serveur via le code-behind de ma page aspx. Je pense qu'il me manque un principe de base ici.

Était-ce utile?

La solution

Cela ne peut être fait.
Si vous souhaitez accéder aux données que vous avez créées dans la page, vous devez les insérer dans des champs de saisie (éventuellement masqués) et y accéder après leur publication à l'aide de Request.Form["MyHiddenFieldName"].
<div> s ne sont pas publiés sur le serveur. Les éléments runat="server" sont définis dans ViewState (une grosse chaîne, en réalité - vous pouvez le voir dans le source de votre page), donnant l’abstraction de la continuité (ou l’illusion de celle-ci). Toutefois, cette modification n’a pas connaissance des modifications apportées dans le DOM.
Lorsque vous traitez avec <input> des éléments, vous verrez les dernières modifications que vous avez apportées du côté serveur , mais les modifications apportées du côté client ont disparu.
Seules les valeurs <=> (et zone de texte, option, etc.) sont publiées sur le serveur lors de l'envoi. Par conséquent, leur modification sur le client sera visible sur le serveur, une fois la page publiée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top