gpt4 book ai didi

ASP.NET CheckBoxList 数据绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-03 02:02:27 24 4
gpt4 key购买 nike

是否可以对 ASP.NET CheckBoxList 进行数据绑定(bind),以便数据中的字符串值成为复选框的标签,而 bool 值则选中/取消选中该框?

在我的 asp.net webform 上,我有一个像这样的 CheckBoxList:

<asp:CheckBoxList runat="server" ID="chkListRoles" DataTextField="UserName" DataValueField="InRole" />

在后面的代码中我有这样的代码:

var usersInRole = new List<UserInRole> 
{
new UserInRole { UserName = "Frank", InRole = false},
new UserInRole{UserName = "Linda", InRole = true},
new UserInRole{UserName = "James", InRole = true},
};

chkListRoles.DataSource = usersInRole;
chkListRoles.DataBind();

我有点希望当 InRole = true 时复选框会被选中。我也尝试过 InRole =“Checked”。结果是一样的。我似乎无法找到一种方法进行数据绑定(bind)并自动选中/取消选中复选框。

目前,我通过为 DataBound 事件中的相应项目设置 selected = true 来解决该问题。似乎有一个更干净的解决方案超出了我的掌握。

谢谢

最佳答案

编辑:无法通过标记来做到这一点。 DataValueField 无法确定复选框项是否被选中。它检索或存储要在回发中使用的值。 DataValueField在 CheckBoxLists、RadioButtonLists、ListControl 等中很常见。

正如您已经发现的那样,这是预先选择复选框的唯一方法。

chkListRoles.DataSource = usersInRole;
chkListRoles.DataBind();

foreach(ListItem item in chkListRoles.Items)
item.Selected = usersInRole.Find(u => u.UserName == item.Text).InRole;

关于ASP.NET CheckBoxList 数据绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com