使用jQuery更改asp:label然后在代码后面访问

时间:2012-02-01 01:27:28

标签: jquery asp.net label code-behind

我知道,疯了吧。

所以我有一个asp标签,我想用jQuery填充它。后来,在代码隐藏中,我想访问此文本以获取其他内容。

我拥有的是:

<asp:Label ID="myLabel" runat="server" />
<asp:Button ID="clickMe" runat="server" Text="Click!" OnClientClick="runMe();" 
   OnClick="clickMe_Click()" />

<script language="javascript" type="text/javascript">

   function runMe () {
      $("#<%=myLabel.ClientID").text("here");}
</script>

protected void clickMe_Click(object sender, EventArgs e)
{
   string isIt = myLabel.Text;
}

因此,如果我在'isIt'定义后面的任何代码上放置一个断点并查看它,isIt =“”。有没有办法让这项工作?我猜测,因为jQuery在html上的行为实际上改变了实际的ASP.NET标签。

3 个答案:

答案 0 :(得分:3)

尝试

$('#<%= myLabel.ClientID %>').html("here"); 
(This should work in all the browsers)

当我想将值传递给页面后面的代码时,我通常使用HiddenField并在Jquery中使用.val()填充它。然后我可以使用HiddenField1.Value

在后面的代码中访问它的值

答案 1 :(得分:0)

尝试使用.val()代替.text()

编辑: 由于ASP.NET控件是使用前缀呈现的,因此您可能还需要考虑ends with选择器。

$('span[id$="myLabel"]').val("here");

答案 2 :(得分:0)

浏览器中的asp:Label元素呈现为span元素。因此,设置该值将不起作用。如果使用Jquery / javascript,我们应该设置asp:labelspan元素的内部Text或内部HTML。如下所示:

$("#<%= myLabel.ClientID %>").text("MY UPDATED TEXT");
$("#<%= myLabel.ClientID %>").html("MY UPDATED HTML");