2011-01-14 16 views
1

Das Problem ist, ich habe eine Reihe von Links onclick dieser Links, die ich die linkId in ein verstecktes Feld festlegen. Zuerst mein Link war asp: linkbutton ans onClientClick Ich habe den hiddenfield Wert gesetzt. Damals konnte ich den versteckten Feldwert vom Code zurückbekommen, aber als ich meine Links zu HTML anchor und onClick änderte setze ich den versteckten Feldwert, I am not getting hidden field with blank. wenn ich debuggen JavaScript es perfekt ist das versteckte Feld Wert einstellen, aber warum bekomme ich es nicht hinter in Code --- mein Code-Was ist der Unterschied, wenn ich versteckte Feld Wert über HTML-Anker OR asp.net Linkbutton setzen?

<a href="./ContentPage.aspx" data-flexmenu='flexmenu1' onclick="javascript:setPageLinkId(1);"> 

<script type="text/javascript"> 
    function setPageLinkId(lnkPageId) { 
     debugger; 
     alert(lnkPageId); 
     document.getElementById('<%=hdnSelectedLink.ClientID %>').value = lnkPageId.toString();    
    }  

</script> 

//code behind- here I get blank hidden field 
if (hdnSelectedLink.Value != null && hdnSelectedLink.Value != "") 
     {    
      GetLinkPage(Convert.ToInt32(hdnSelectedLink.Value)); 

     } 

Was ist das Problem, bitte vorschlagen?

+0

Hat Ihre Seite ein verstecktes Feld mit der 'id' von was auch immer '' <% = hdnSelectedLink.ClientID%> ''transformiert zu? Auch Ihr Code ist hinter - ist dieser Code an einer Stelle, wo es nach dem Absenden der Seite aufgerufen wird? Wenn dies nicht der Fall ist, kann ASP den Wert nicht sehen. – scunliffe

Antwort

0

Meine Theorie ist, dass der Klick auf den Anker kein Postback auf die Seite verursacht. Stattdessen wird eine HTTP GET-Anforderung an "ContentPage.aspx" ausgegeben, was bedeutet, dass keine Formularwerte auf dem Server veröffentlicht werden.

Sie müssen ein Steuerelement verwenden, das ein Postback auf die Seite verursacht ... zum Beispiel ASP: LinkButton wie zuvor.

0

@Ozzy Sie mit der rechten dude.I waren verwendet, um dieses in meinem Javascript-

document.forms["aspnetForm"].submit(); 

seine Arbeit jetzt in Ordnung.