2012-03-30 12 views
1

Also im Grunde, ich habe ein div, die runat = "server" istjQuery.html() funktioniert nicht gut mit Asp.Net innerhtml

<div id="results" runat="server" class="results"></div> 

Nun füge ich HTML auf diese mit jQuery.

Wenn ich jedoch versuche, mit C# auf die Daten in diesem DIV zuzugreifen, heißt es, dass das DIV keinen Inhalt hat.

string myResults = results.innerHtml; 

myResults ist leer.

Kann mir jemand helfen? Ich habe dieses Verhalten noch nie zuvor gesehen.

Vielen Dank!

+1

, die funktionieren sollte ... sind sicher zugreifen können Sie Sie die läufst Code, wenn das Dokument bereit ist? – xandercoded

+1

Das wird nicht funktionieren, da DIV nicht auf dem Server veröffentlicht wird. Wenn Sie diese Daten zum Server übertragen möchten, kopieren Sie sie in ein Formularsteuerelement (z. B. versteckte Eingabe). –

+2

Es liegt daran, dass das JavaScript clientseitig ausgeführt wird und der C# -Code serverseitig ausgeführt wird. Der Inhalt (innerer HTML-Code) des Divs wird nicht zurück an den Server gesendet, so dass Ihr C# -Code nicht darauf zugreifen kann. –

Antwort

1

Sie für so etwas suchen können ...

<div id="results" runat="server" class="results"></div> 
<input type="hidden" id="hiddenResults" runat="server" class="hiddenResults" /> 

$('.results').html('Some crazy data'); 
$('.hiddenResults').val('Some crazy data'); 

Jetzt können Sie die Daten auf dem Server

string myResults = hiddenResults.Value; 
+0

Es sollte hiddenResults.Value sein –

1

Anstatt jQuery und Javascript zu mischen. Versuchen

var myResults = $(".results").html(); 

einfach alles, um zu überprüfen ist richtig, ob Ihre results wie unten

var results = document.getElementById("results"); 
var myResults = results.innerHtml; 
definiert ist

Wenn Sie den Wert von results auf dem Server versucht zu bekommen, ist es nicht möglich, durch jQuery oder Javascript, es sei denn, senden Sie eine AJAX-Anfrage.

+1

Es gibt jedoch keinen Grund dafür, dass Ihr Code nicht funktioniert, es sei denn "results" zeigt auf null – Starx

+1

Es gibt keine Möglichkeit, dass "string myResults" JavaScript-Code ist ... –

+1

OP greift auf die Daten auf dem Server nicht auf dem Client zu . –

4

Diese Zeile sieht aus wie C#:

string myResults = results.innerHtml; 

Vermutlich Sie versuchen, Ihr Server -side DIV in C# zuzugreifen. Das passiert vor der HTML wird an den Browser gesendet. Das bedeutet, dass das überhaupt nicht funktioniert, da Sie den Wert Client-Seite im Browser (nachdem das HTML bereits gesendet wurde) sind.

+0

Sie haben Recht, aber gibt es da eine Arbeit? –

+0

@Umm, ja, sicherlich, aber es ist nicht klar, was Sie versuchen zu tun. 1) Der Server erzeugt HTML und sendet es an den Browser 2) Der Browser führt Javascript aus und setzt das div so, dass es "einige verrückte Daten" enthält. 3) Sie möchten diese Daten konsumieren ... wann? Woher? Warum? Bitte erläutern Sie Ihren Anwendungsfall und wir können einen Ansatz (möglicherweise AJAX) empfehlen. –

Verwandte Themen