我正在使用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;
}
}}
答案 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)
如果您的复选框位于更新面板内,
然后您需要更新更新面板..