2009-09-15 8 views
2

j'ajouter dynamiquement des lignes à l'aide divStaff jquery:jquery append + code-behind

$("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'ajouter est dans la div class = caché j'ajouter le contenu de "staff_tpl." cette div divStaff

Quand je soumets la page (postback), la divStaff résultante est toujours vide si je tente de l'afficher comme ceci:

lblTest.Text = divStaff.innerHtml.ToString 

essentiellement, je manipuler un div côté client, 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.

+0

pas possible !!! – TheVillageIdiot

Répondre

1

Cela ne peut pas être fait.
Si vous souhaitez accéder aux données que vous avez créées sur la page, vous devez les placer dans des champs de saisie (éventuellement masqués) et y accéder après leur publication en utilisant Request.Form["MyHiddenFieldName"].
<div> s ne sont pas publiés sur le serveur. runat="server" éléments sont enechoded dans le ViewState (une grande chaîne, vraiment - vous pouvez le voir dans la source de votre page), donnant l'abstraction de la continuité (ou l'illusion de celui-ci). Cependant, cette piqûre n'est pas consciente des changements que vous faites dans le DOM.
Lorsque vous traitez des éléments runat="server", vous verrez les dernières modifications que vous avez apportées côté serveur, mais les modifications côté client ont disparu.
Seulement <input> (et zone de texte, option, etc) valeurs sont affichées sur le serveur sur soumettre, de sorte que les changements sur le client seront visibles sur le serveur, après que la page a été publiée.

+0

J'étais sous l'impression qu'ajouter runat = "server" et un ID unique à un div vous permet d'y accéder côté serveur? Ce n'est pas le cas? –

+0

Vous pouvez accéder à une div avec runat = "server" côté serveur. – rahul

+0

@phoenix - bien sûr, mais pas pour les modifications que vous avez faites avec jQuery. Ai-je tort quelque part? – Kobi

Questions connexes