首页 > 解决方案 > ASP.net 如何直观地反转特定的 CheckBox?

问题描述

目标:用户切换一个复选框,然后弹出一个模式以确认是(更新数据库)或否(撤消选择)。如果他们单击确认对话框中的否按钮,我希望复选框反向用户选择。例如:如果他们点击打开,但当确认出现时,他们点击否,它应该切换回关闭

问题/发生了什么:当我调试时,它说值正在反转,但是在页面上我看不到视觉上没有发生任何事情

我尝试过的:我尝试了条件,相应地设置了 checkboxvariable.Checked = true 或 false。但它不会改变屏幕上的任何东西。我在执行此操作时使用调试器来观察值我尝试在没有条件的情况下简单地设置它,并在不同的条件下尝试它。 如何重置复选框值

C#

//Checkbox event
 protected void cbUpdateAvailability_Click(object sender, EventArgs e)
 {
        CheckBox cbSender = (CheckBox)sender;
        providerIndex = getProviderIndexCB(cbSender.ClientID);//int providerIndex = getProviderIndexCB(cbSender.ClientID);
        
        Session["providerIndex"] = providerIndex;
        availableTxt.Text = (cbSender.Checked) ? "available" : "unavailable";
        DrName.Text = providerStatsListDto.ProviderStatsList[providerIndex].LastName;
        
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "availabilityModal", "$('#availabilityModal').modal();", true);
        upModal.Update();
 }
    
//Confirmation Button click event
protected void btnUpdateAvailability_Click(object sender, EventArgs e)
{
    Button btnSender = (Button)sender;
    if (btnSender.Text == "Yes") {
        //Update DB
    }
    else
    {
        //If they click No , flip checkbox back
        //Session variable to know which checkbox?
        //chkOnOff2.Checked = (chkOnOff2.Checked) ? false : true; //even when Checked becomes false, it doesn't visually change, why?
        //chkOnOff2.Checked = (availableTxt.Text == "available") ? false :  true;
       //chkOnOff2.Enabled = false;
       // chkOnOff2.Enabled = (availableTxt.Text == "available") ? false : true; 
      //chkOnOff2.Checked = (chkOnOff2.Checked) ? false : true;
      //chkOnOff2.Checked = (availableTxt.Text == "available") ? false :  true;
    }

ASPX

<div class="modal-footer">
    <div class="margin-center">
        <asp:Button ID="btnUpdateAvailability" AutoPostBack="true" runat="server" Text="Yes" CssClass="btn btn-green" ClientIDMode="Static" OnClick="btnUpdateAvailability_Click"/>

        <asp:Button ID="btnUpdateAvailabilityNo" AutoPostBack="true" runat="server" Text="No" CssClass="btn btn-secondary" ClientIDMode="Static"  OnClick="btnUpdateAvailability_Click"/>
    </div>
</div>

标签: c#asp.netbuttoncheckboxevent-handling

解决方案


推荐阅读