【发布时间】:2017-06-06 15:41:48
【问题描述】:
我需要找到一种方法将 ischecked 的默认值设置为 true,我将它作为参数传递,但我并不总是设置它。
ischecked 是在我的配置文件中定义的,我有多个配置,有些是定义的,有些不是。我不会解释为什么我使用不同的配置。如果未定义,则默认为 false,但我需要它为 true。
function showSaveCardControl(ischecked) {
$(".saveCardControl").slideDown().find("input").prop("checked", ischecked);
}
如果尚未定义,我基本上需要选中复选框,但由于默认值为 false,因此未选中。
更新:
我正在将一个 xml 元素传递给一个 c# 属性。 xml 将是我设置 ischecked 值的位置,但由于我没有在 xml 中的某个位置设置它,或者一旦它被转换为 c# 属性,它就被设置为 false。我猜它是在属性尝试调用该 xml 值时设置的。
我尝试使用属性设置默认值。
[XmlElement("EasyPaySaveCardControlChecked")]
[DefaultValue(true)]
public bool ischecked { get; set; }
我已经尝试使用构造函数来设置它。
public className()
{
ischecked = true;
}
我也尝试将所有布尔值设为空,但该值仍设置为 false
这些解决方案都不起作用,我不知道为什么。无论我做什么,该属性都设置为 false,如果将其设置为 undefined 就可以了,但是 bools 必须默认为 false
【问题讨论】:
-
if (ischecked === undefined) ischecked = true;? -
你最好在从配置中读取它的时候默认它,而不是在你的代码的其余部分添加默认值。
-
@Jamiec 我刚刚更新了我的问题,我尝试在调用 xml 配置后立即将其默认,但它似乎不起作用
-
bools have to defaulted to false- nullable bool ->public bool? ischecked -
@Jamiec 我也试过了,抱歉我没有添加它。即使我将其设置为可为空的布尔值,它仍被设置为 false