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

-2

この問題は、asp.net ボタンの EnableViewState プロパティに関連している可能性があると思います。値がポストバック ハンドラーに渡されるには、'true' である必要があります。

私の側で少しテストを行ったところ、EnableViewState が「false」の場合、問題を再現できました。「true」に設定すると機能します。

お役に立てば幸いです。

ロジャー

于 2014-07-08T08:39:35.437 に答える