【问题标题】:Set innerHTML in javascript and get from C#在javascript中设置innerHTML并从C#中获取
【发布时间】:2012-08-26 09:53:20
【问题描述】:

我有两个标签:

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

我通过javascript设置innerHTML:

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

如何在代码隐藏中获取这些标签值?我试试:

TextBox2.Text = Label1.Text;

更新:我需要获取图钉位置:

  <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
}

【问题讨论】:

  • 是的,您的代码似乎是正确的。只需在分配前确认值
  • 不,你不能。要将数据从客户端传输到服务器,请使用输入控件或 Ajax。
  • 您的代码到底有什么问题?您应该发布一个完整示例,说明您尝试过的操作和发生的情况,以便我们为您提供帮助。
  • 要让更新后的数据可用于页面后面的代码,您必须先将页面回发。

标签: c# innerhtml


【解决方案1】:

您无法访问服务器端的值。您必须为此使用隐藏字段:

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

在隐藏字段中设置innerHtml值:

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

然后您可以通过以下方式从服务器端访问它:

TextBox1.Text = Hidden1.Value;

【讨论】:

    【解决方案2】:

    您无法使用Label 控件执行此操作,因为当页面回发时,标签的内容不会发布到服务器。您将需要使用各种输入控件。最好的选择可能是隐藏输入。

    【讨论】:

      【解决方案3】:

      取一个隐藏字段,如下所示

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

      然后在 Jquery 中设置它的值,如下所示

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

      并在后面的代码中这样做来获取它

      string body = hdnBody.Value;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 2011-10-19
        • 2017-07-27
        • 2023-03-30
        • 1970-01-01
        相关资源
        最近更新 更多