我知道,疯了吧。
所以我有一个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标签。
答案 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:label
或span
元素的内部Text或内部HTML。如下所示:
$("#<%= myLabel.ClientID %>").text("MY UPDATED TEXT");
$("#<%= myLabel.ClientID %>").html("MY UPDATED HTML");