从ASP Label Control读取文本(由jquery填充)

时间:2019-06-07 17:55:29

标签: javascript c# jquery css asp.net

<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    $("button").click(function() {
      var items = [];
      $.each($("input[name]:checked"), function() {
        items.push($(this).val());
      });
      //alert("You entered: " + items.join(", "));
      if (items.length === 0) {
        $('#<%=Label1.ClientID%>').html("No data to display.");
      } else {
        items = items.join(", ");
        $('#<%=Label1.ClientID%>').html("You selected the following options: " + "<br />");
        $('#<%=txtTestVar1.ClientID%>').html(items);
      }
    });
  });
</script>

<button type="button" runat="server">Update Choices <i class="fas fa-retweet"></i></button>
<br />
<br />
<asp:Label runat="server" ID="Label1"></asp:Label>
<asp:Label runat="server" ID="txtTestVar1"></asp:Label>

protected void btnSave_Click(object sender, EventArgs e) { lblNotification.Text = txtTestVar1.Text.ToString(); }

我使用Jquery在html页面上填充了一个标签,效果很好。但是,当我尝试从刚刚填充的标签(通过使用后面的代码-c#)读取时,它返回一个空字符串。有人可以解释为什么吗?

1 个答案:

答案 0 :(得分:0)

标签的文本/值不会包含在回发有效载荷数据中。

例如,您必须将数据存储在HiddenField(或TextBox)中,而不是Label中。

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

并在客户端通过jQuery val而不是html设置数据。

$('#<%=txtTestVar1.ClientID%>').val(items);

在服务器端,您可以通过隐藏字段Value属性获取值。

protected void btnSave_Click(object sender, EventArgs e) 
{
    var value = this.txtTestVar1.Value;
    // ...
}