回发后JQuery设置文本值丢失

时间:2013-10-09 08:34:38

标签: jquery .net

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="../js/jquery/jquery-1.4.1.min.js" type="text/javascript"></script>
<script>
function btnSetText_OnClientClick() {
$("#<%= lbl1.ClientID %>").text("123");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbl1" runat="server"></asp:Label>
<asp:Button ID="btnSetText" runat="server" Text="Set Text" OnClientClick="btnSetText_OnClientClick(); return false;" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</div>
</form>
</body>
</html>

protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnSubmit_Click(object sender, EventArgs e)
{
string str1 = lbl1.Text;
}

这里的场景是当用户点击“设置文本”时,jquery脚本将更新标签值,当点击提交按钮时,lbl1.Text的值总是“”,这在回发发生后丢失,任何想法?

2 个答案:

答案 0 :(得分:5)

使用A HiddenField获取回发后的值

试试这个

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="../js/jquery/jquery-1.4.1.min.js" type="text/javascript"></script>
<script>
function btnSetText_OnClientClick() {
$("#<%= lbl1.ClientID %>").text("123");
$('#HiddenFileldVariable').val($("#<%= lbl1.ClientID %>").text());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbl1" runat="server"></asp:Label>
<asp:Button ID="btnSetText" runat="server" Text="Set Text" OnClientClick="btnSetText_OnClientClick(); return false;" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
 <asp:HiddenField ID="HiddenFileldVariable" runat="server" />
</div>
</form>
</body>
</html>

protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnSubmit_Click(object sender, EventArgs e)
{
      string str1 = HiddenFileldVariable.Value;
}

答案 1 :(得分:-2)

我认为问题可能与您的asp.net按钮的EnableViewState属性有关;它必须是真实的&#39;将值传递给回发处理程序。

我已经做了一点测试,如果EnableViewState是“假”,我能够重现你的问题。如果我将其设置为&#39; true&#39;

,它就有效

我希望它有所帮助,

罗杰