【问题标题】:Why is my asp:Checkbox returning false when its checked?为什么我的 asp:Checkbox 在检查时返回 false?
【发布时间】:2019-03-02 02:14:15
【问题描述】:

在我的 asp:net 应用程序中,我以相同的方式设置了 2 个复选框。一个工作正常:

ASPX

<asp:CheckBox ID="uxOwnershipCheckBox" runat="server" OnCheckedChanged="uxOwnershipCheckBox_CheckedChanged" Checked="false" AutoPostBack="true"/>

C#

protected void uxOwnershipCheckBox_CheckedChanged(object sender, EventArgs e)
    {
        if (uxOwnershipCheckBox.Checked)
        {
            DataTable ownershipDT = _dtMgr.GetTicketByStatus_Everyone(uxStatusDropdownList.SelectedValue);
            uxTktGridView.DataSource = ownershipDT;
            uxTktGridView.DataBind();
            uxTicketCounter.Text = ownershipDT.Rows.Count.ToString();
        }
        else
        {
            DataTable ownershipDT = _dtMgr.GetTicketByStatus(uxStatusDropdownList.SelectedValue, Session["UserNameSession"].ToString());
            uxTktGridView.DataSource = ownershipDT;
            uxTktGridView.DataBind();
            uxTicketCounter.Text = ownershipDT.Rows.Count.ToString();
        }
    }

另一个总是将uxCloseDateCheckbox.Checked 值显示为false;即使它被检查过。因此,条件语句中的内容永远不会被解雇!我在这里做错了什么?

ASPX

<asp:CheckBox runat="server" style="padding-right:1px; float:right; margin-right:170px;" ID="uxCloseDateCheckbox" Text="Closure Date" TextAlign="Right" OnCheckedChanged="uxCloseDateCheckbox_CheckedChanged" Checked="false" AutoPostBack="true"/>

C#

protected void uxCloseDateCheckbox_CheckedChanged(object sender, EventArgs e)
    {
        if (uxOwnershipCheckBox.Checked)
        {
            DateTime dateTicketClosed = DateTime.ParseExact(uxDateTimeLocalTextbox.Text, "MM-dd-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
        }
    }

【问题讨论】:

  • 请同时提供您的页面加载代码
  • 另外,您的 uxCloseDateCheckbox if 语句正在查看 uxOwnershipCheckBox 复选框。这是故意的吗?
  • 啊!这就是问题所在!很抱歉没有注意到这一点。

标签: c# asp.net checkbox


【解决方案1】:

看起来您在 _CheckChanged 方法中调用了错误的复选框。

protected void uxCloseDateCheckbox_CheckedChanged(object sender, EventArgs e)
{
    if (uxOwnershipCheckBox.Checked) //This is where your issue is..
    {
        DateTime dateTicketClosed = DateTime.ParseExact(uxDateTimeLocalTextbox.Text, "MM-dd-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
    }
}

应该是:

protected void uxCloseDateCheckbox_CheckedChanged(object sender, EventArgs e)
{
    if (uxCloseDateCheckbox.Checked)
    {
        DateTime dateTicketClosed = DateTime.ParseExact(uxDateTimeLocalTextbox.Text, "MM-dd-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
    }
}

【讨论】:

  • 是的,很抱歉浪费大家的时间。它现在工作正常。剪切和粘贴并不总是按计划进行。 :-(
  • 哈哈,我们都去过那里。有时需要第二双眼睛
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 2022-11-20
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多