复选框的值在asp.net中是错误的

时间:2013-08-05 05:48:00

标签: asp.net

我正在使用asp.net。我想显示未选中的复选框,但在浏览器中,复选框的状态为true,我在服务器端代码中设置了checkbox.checked = false,但在浏览器中显示已选中。

这是我的代码

   {<asp:CheckBox ID="SendNotificationCheckBox" runat="server" Checked="false" Enabled="false"    oncheckedchanged="SendNotificationCheckBox_CheckedChanged" AutoPostBack="true"/>}   

我在服务器端尝试了这段代码:

{ protected void SendNotificationCheckBox_CheckedChanged(object sender, EventArgs e)
 {
     if (SendNotificationCheckBox.Checked == true)
     {
         NotificationPanel.Visible = true;
         NotificationMessageTextBox.Text = "Business Listing Named:" + BusinessNameLabel.Text.Trim() + " Will Be Expired On" + NextVerificationDateLabel.Text.Trim() + ".Contact Us To Renew it.";
     }
     else if (SendNotificationCheckBox.Checked == false)
     {
         NotificationPanel.Visible = false;
     }
 }}

2 个答案:

答案 0 :(得分:0)

我知道这不是你问的问题,但我认为JavaScript / JQuery最适合这类事情。将以下代码放在页面的头部

<script type="text/javascript">
    function toggleVisibility(cb) {
        var x = document.getElementById("NotificationPanel");
        x.style.display = cb.checked ? "block" : "none";
    }
</script>

并在您的复选框中

<asp:CheckBox ID="SendNotificationCheckBox" runat="server" Checked="false" onclick="toggleVisibility(this);"/>
<asp:Panel runat="server" ID="NotificationPanel" style="display: none;">
    skjhaskjf
</asp:Panel>

或者如果您想使用JQuery,请在Head中添加

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#SendNotificationCheckBox").click(function () {
            $(this).is(':checked') ? $("#NotificationPanel").show() :
                $("#NotificationPanel").hide();
        });
    });
</script>

和您的复选框

<asp:CheckBox ID="SendNotificationCheckBox" runat="server" Checked="false"/>
<asp:Panel runat="server" ID="NotificationPanel" style="display: none;">
    skjhaskjf
</asp:Panel>

以下是您想要的问题解决方案。 您取消选中文本框并在PageLoad中禁用它。如果这样做,每次控件进入服务器时,都会执行PageLoad,并且将禁用该复选框。执行pageload后,将执行事件'SendNotificationCheckBox_CheckedChanged'。

由于在页面加载中未选中Checkbox,因此如果选中Checkbox,您编写的代码将无用。因此,您必须首次检查页面是否正在加载。如果是,请取消选中该复选框,否则请取消选中。 你必须通过

检查IsPostBack财产来做到这一点
If(!IsPostBack)
{
    CheckBoxID.Checked=false;
    CheckBoxID.Enabled=false;
}

答案 1 :(得分:0)

如果您的复选框位于更新面板内,

然后您需要更新更新面板..