3 votes

Définir innerHTML en javascript et l'obtenir en C#

J'ai deux étiquettes :

  <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

et j'ai défini innerHTML par javascript :

document.getElementById('Label1').innerHTML = position.lat();
document.getElementById('Label2').innerHTML = position.lng();

Comment puis-je obtenir les valeurs de ces étiquettes dans le codebehind ? J'ai essayé :

TextBox2.Text = Label1.Text;

MISE À JOUR J'ai besoin de connaître l'emplacement de la punaise :

  <artem:GoogleMap ID="GoogleMap1" runat="server" 
    EnableMapTypeControl="False" MapType="Roadmap" >        
  </artem:GoogleMap>      
  <artem:GoogleMarkers ID="GoogleMarkers1" runat="server" 
    TargetControlID="GoogleMap1" onclientpositionchanged="handlePositionChanged">
  </artem:GoogleMarkers> 
  <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

<script type="text/javascript">
  var list = document.getElementById("Label1");
  function handlePositionChanged(sender, e) {
    printEvent("Position Changed", sender, e);
  }
  function printEvent(name, sender, e) {
    var position = e.latLng || sender.markers[e.index].getPosition();
    document.getElementById('Label1').innerHTML = position.lat();
    document.getElementById('Label2').innerHTML = position.lng();
  }
</script>

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox2.Text = Label1.Text;// return value: Label
}

6voto

tranceporter Points 1604

Vous ne pouvez pas accéder à la valeur côté serveur. Vous devrez utiliser un champ caché pour cela :

<asp:HiddenField ID="Hidden1" runat="server" />

La valeur innerHtml est définie dans le champ Hidden en faisant :

document.getElementById('<%= Hidden1.ClientID %>').value = position.lat();

Vous pouvez ensuite y accéder du côté du serveur en faisant :

TextBox1.Text = Hidden1.Value;

1voto

Mike B Points 991

Vous ne pouvez pas le faire avec le Label car lorsque la page est renvoyée, le contenu des étiquettes n'est pas envoyé au serveur. Vous devriez utiliser une sorte de contrôle d'entrée. Une entrée cachée serait probablement la meilleure solution.

1voto

Tapan kumar Points 877

Prenez un champ caché comme ci-dessous

<asp:HiddenField ID="hdnBody" ClientIDMode="Static" runat="server" />

Ensuite, définissez sa valeur dans Jquery comme suit

<script>
function GetEmailID() {
    var bodyHtml = $("#editor").html();

    $("#hdnBody").val(bodyHtml);  
}
</script>

Et dans le code qui se trouve derrière, voici ce qu'il faut faire pour l'obtenir

string body = hdnBody.Value;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X