【发布时间】:2026-02-24 21:20:06
【问题描述】:
我有以下情况:
.ascx:
<script type="text/javascript">
$(document).ready(function () {
$('.onoffswitch-checkbox').change(function () {
if ($(this).is(":checked"))
$('#hf').val(1);
else
$('#hf').val(0);
});
});
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="hf"/>
</Triggers>
<ContentTemplate>
<input type="checkbox" class="onoffswitch-checkbox">
<asp:HiddenField ID="hf" runat="server" Value="0"/>
<asp:Label ID="label" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
.vb:
Protected Sub hf_ValueChanged(ByVal sender As Object, ByVal e As EventArgs) Handles hf.ValueChanged
label.Text = "something..."
End Sub
JS 函数在 CheckBox 被选中或取消选中后更改 HiddenField 的值,但 HiddenField 的 ValueChaneged-Event 不会触发。我试过asp:PostBackTrigger - 也没有效果,你能看到错误吗?
编辑:
我也尝试在控件中声明方法:
.ascx:
<asp:HiddenField ID="hf" runat="server" Value="0" OnValueChanged="hf_ValueChanged"/>
.vb
Protected Sub hf_ValueChanged(ByVal sender As Object, ByVal e As EventArgs)
label.Text = "something"
End Sub
没有效果。
【问题讨论】:
-
查看 firefox web 控制台了解错误。并放入Q中。
-
控制台没有错误
-
为什么需要隐藏字段?仅用于标签文本更改?为什么不使用复选框事件?
-
这是另一个问题的简短示例,我需要这个 HiddenField
标签: asp.net events updatepanel postback hiddenfield