Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输入控件类型复选框始终为true_C#_Asp.net_Html - Fatal编程技术网

C# 输入控件类型复选框始终为true

C# 输入控件类型复选框始终为true,c#,asp.net,html,C#,Asp.net,Html,我已经搜索了所有讨论这个问题的主题,似乎找不到一个用Asp.net C#解释这个问题的主题,所有的东西都是javascript、MVC或PHP,这是我打开一个新问题的理由 我有两个输入控件类型复选框 <input runat="server" type="checkbox" name="chkChildSexMale" id="chkChildSexMale" /> <input runat="server" type="checkbox" name="chkChildSex

我已经搜索了所有讨论这个问题的主题,似乎找不到一个用Asp.net C#解释这个问题的主题,所有的东西都是javascript、MVC或PHP,这是我打开一个新问题的理由

我有两个输入控件类型复选框

<input runat="server" type="checkbox"  name="chkChildSexMale" id="chkChildSexMale" />
<input runat="server" type="checkbox" name="chkChildSexFemale" id="chkChildSexFemale"/>
    <asp:Button ID="btnSaveCheckBoxes" runat="server" Text="Save CheckBox" OnClick="btnSaveCheckBoxes_Click" />
然后在我的按钮点击事件中,我调用这个方法

protected void btnSaveCheckBoxes_Click(object sender, EventArgs e)
{
SaveCheckBoxes();
}

对于两个相互排斥的选择,您应该使用输入类型收音机,而不是复选框:

<input runat="server" type="radio"  name="chkChildSex" value="male" id="chkChildSexMale" />
<input runat="server" type="radio" name="chkChildSex" value="female" id="chkChildSexFemale" />


当您对两个复选框使用相同的
name
属性时,第二个复选框将覆盖第一个复选框。当您对两个单选按钮使用相同的
名称
属性时,它会将它们关联起来,并且该值是选中项的值。

对于两个互斥的选择,您应该使用输入类型单选,而不是复选框:

<input runat="server" type="radio"  name="chkChildSex" value="male" id="chkChildSexMale" />
<input runat="server" type="radio" name="chkChildSex" value="female" id="chkChildSexFemale" />


当您对两个复选框使用相同的
name
属性时,第二个复选框将覆盖第一个复选框。当您对两个单选按钮使用相同的
name
属性时,它会将它们关联起来,并且该值是选中项的值。

尽管两个复选框的id属性不同,但name属性是相同的

此外,关于使用单选按钮的建议最有意义,因为它看起来像你正在尝试做的事情

<input runat="server" type="radio" name="rdoChildSex" value="Male" />
<input runat="server" type="radio" name="rdoChildSex" value="Female" />

尽管两个复选框的id属性不同,但name属性是相同的

此外,关于使用单选按钮的建议最有意义,因为它看起来像你正在尝试做的事情

<input runat="server" type="radio" name="rdoChildSex" value="Male" />
<input runat="server" type="radio" name="rdoChildSex" value="Female" />

我的问题是页面加载,我使用数据读取器根据某些值设置复选框。当我点击我的按钮时,它用数据库中的值重写了我选择的值。所以我不得不添加if(!Page.IsPostBack)


根据我提供的信息,很难理解这一点,因此我感谢所有人的帮助

我的问题在于页面加载,我正在使用数据读取器根据某些值设置复选框。当我点击我的按钮时,它用数据库中的值重写了我选择的值。所以我不得不添加if(!Page.IsPostBack)


根据我提供的信息,很难理解这一点,因此我感谢所有人试图帮助我摆脱
name=“
我更改了名称,但这并没有解决chkChildSexMale的问题。Checked始终是真的,即使它不是checkedGet摆脱
name=“”
我更改了名称,但这并没有解决问题chkChildSexMale.Checked始终为true,即使未选中。对于此示例,我可能可以使用单选按钮,但我有更多的复选框以相同的方式运行,对于那些想知道.Checked属性为何计算为true的人,我无法使用单选按钮虽然没有检查。我也将名称更改为唯一,但这仍然不起作用。在本例中,我可能可以使用单选按钮,但我有更多的复选框,它们的行为方式相同。对于那些想知道.checked属性为何在未选中的情况下计算为true的人,我不能使用单选按钮。我也将名称更改为唯一,但这仍然不起作用。在本例中,我可能可以使用单选按钮,但我有更多的复选框,它们的行为方式相同。对于那些想知道.checked属性为何在未选中的情况下计算为true的人,我不能使用单选按钮。我把名字也改成了唯一的,但这仍然不起作用,你的代码中,你在哪里执行检查?在PageLoad?on button click Event中,您看到我给出的更新示例了吗?无论是使用“==true”和“==false”还是简单地使用“.Checked”,都不会有什么区别但奇怪的事情发生了。是的,最初我有这个代码,但它不起作用,因为.Checked的计算结果为true。对于这个示例,我可能可以使用单选按钮,但我有更多的复选框,它们的行为方式相同,我不能使用单选按钮,因为我想知道为什么.Checked属性的计算结果为true虽然没有检查。我把名字也改成了唯一的,但这仍然不起作用,你的代码中,你在哪里执行检查?在PageLoad?on button click Event中,您看到我给出的更新示例了吗?无论您使用“==true”和“==false”还是简单地使用“.Checked”,都不应该有什么区别,但是奇怪的事情发生了。是的,最初我有这个代码,它不起作用,因为.Checked的计算结果为true
    if (chkChildSexMale.Checked == true)   
    {
         do something   
    }   
    else if (chkChildSexFemale.Checked == false)   
    {
         do something else   
    }