1

私は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;
     }
 }}
4

2 に答える 2

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を使用したい場合は、これを頭に追加してください

<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が実行され、チェックボックスが無効になります。ページロードの実行後、イベント「SendNotificationCheckBox_CheckedChanged」が実行されます。

チェックボックスはページロードでチェックされていないため、チェックボックスがチェックされている場合に記述したコードは役に立ちません。そのため、ページが初めて読み込まれるかどうかを確認する必要があります。その場合は、チェックボックスをオフにするか、オフにします。IsPostBackプロパティを確認することでそれを行う必要があります

If(!IsPostBack)
{
    CheckBoxID.Checked=false;
    CheckBoxID.Enabled=false;
}
于 2013-08-05T06:18:39.420 に答える
0

チェックボックスが更新パネル内にある場合、

次に、更新パネルを更新する必要があります..

于 2013-08-05T06:27:17.967 に答える