2
<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的值总是“”,在回发后丢失,有什么想法吗?

4

2 回答 2

5

使用 AHiddenField获取回发后的值

尝试这个

<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;
}
于 2013-10-09T09:12:35.963 回答
-2

我认为问题可能与您的 asp.net 按钮的 EnableViewState 属性有关;要传递到回发处理程序的值必须为“真”。

我已经做了一些测试,如果 EnableViewState 为“假”,我可以重现您的问题;如果我将其设置为“true”,它会起作用。

我希望它有所帮助,

罗杰

于 2014-07-08T08:39:35.437 回答