DataBind 上默认为 Null 值

发布于 2024-11-09 00:10:22 字数 178 浏览 0 评论 0原文

我将一个可为空的布尔列绑定到一个复选框。 如果列为空,如何默认选中复选框,但如果存在则保留真/假值?

<asp:CheckBox ID="boolCheckBox" runat="server" Checked='<%# Bind("MyBoolColumn") %>' 

I am binding a nullable boolean column to a CheckBox.
How can I default the checkbox to checked if the column is null, but keep the true/false value if one exists?

<asp:CheckBox ID="boolCheckBox" runat="server" Checked='<%# Bind("MyBoolColumn") %>' 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

海拔太高太耀眼 2024-11-16 00:10:22

与 Eval 不同,显然除了使用字符串格式之外,您不能对 Bind 做太多事情:

Bind("MyColumn", "{0:c}"))

我发现的解决方案是使用 ItemCreated事件

        protected void myListView_OnItemCreated(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.InsertItem)
        {
            ((CheckBox)((ListView)sender).InsertItem.FindControl("MyCheckBox")).Checked = true;
        }
    }

Unlike Eval apparently you can't do much with Bind, other than use a string format:

Bind("MyColumn", "{0:c}"))

The solution I found was to use the ItemCreated event

        protected void myListView_OnItemCreated(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.InsertItem)
        {
            ((CheckBox)((ListView)sender).InsertItem.FindControl("MyCheckBox")).Checked = true;
        }
    }
孤独患者 2024-11-16 00:10:22

试试这个:

<asp:CheckBox ID="boolCheckBox" runat="server" "<%# (Bind("MyBoolColumn") == null? "Checked='checked'" : null %>">

try this:

<asp:CheckBox ID="boolCheckBox" runat="server" "<%# (Bind("MyBoolColumn") == null? "Checked='checked'" : null %>">
半透明的墙 2024-11-16 00:10:22

不确定这是否有效,但试一试:

<%# If(Bind("MyBoolColumn") Is Nothing, True, Bind("MyBoolColumn")) %>

Not sure if this will work, but give it a shot:

<%# If(Bind("MyBoolColumn") Is Nothing, True, Bind("MyBoolColumn")) %>
乖乖哒 2024-11-16 00:10:22

您可以在数据库级别执行此操作。像这样的东西:

SELECT 
MyBooleanColumn = 
Case 
When MyBooleanColumn Is Null Then 1 
Else MyBooleanColumn End
FROM YourTable

You can do at database level. Something like this:

SELECT 
MyBooleanColumn = 
Case 
When MyBooleanColumn Is Null Then 1 
Else MyBooleanColumn End
FROM YourTable
我为君王 2024-11-16 00:10:22

您可以向模型添加仅包含 getter 的属性:

public class SomeClass
{
    public bool? MyBoolColumn { get; set; }
    public bool MyBoolColumnChecked
    {
        get { return MyBoolColumn ?? true; }
    }
}

然后绑定到新属性

Checked='<%# Bind("MyBoolColumnChecked") %>'

You could add a property with only a getter to your model:

public class SomeClass
{
    public bool? MyBoolColumn { get; set; }
    public bool MyBoolColumnChecked
    {
        get { return MyBoolColumn ?? true; }
    }
}

Then bind to the new property

Checked='<%# Bind("MyBoolColumnChecked") %>'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文