ASP.NET C# - 如何为 UserControl 内的 CheckBoxList 设置公共属性?

发布于 2024-08-09 01:27:20 字数 100 浏览 1 评论 0原文

我很难弄清楚这一点。如果我在用户控件中有一个复选框列表,我如何循环(或检查,实际上)列表中选中了哪些框?

正如我在下面的评论中所说,我想通过控件本身的属性公开选中的项目。

I'm having trouble figuring this out. If I have a checkboxlist inside a usercontrol, how do I loop through (or check, really) what boxes are checked in the list?

As I said in the comment below, I'd like to expose the checked items through a property in the control itself.

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

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

发布评论

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

评论(2

誰ツ都不明白 2024-08-16 01:27:20

从您的页面您可以执行以下操作

var checkboxes = (CheckBoxList)userControl1.FindControl("checkBoxList1");

,但在我看来,更好的解决方案是通过属性或方法公开选中的项目。

在用户控件中

public string[] CheckedItems {
    get {
        List<string> checkedItems = new List<string>();
        foreach (ListItem item in checkbox1.Items)
            checkedItems.Add(item.Value);

        return checkedItems.ToArray();
    }
}

然后在页面中

var checkedItems = userControl1.CheckedItems; 

您也可以只在属性中返回 checkbox1.Items ,但这不是很好的封装。

From your page you can do

var checkboxes = (CheckBoxList)userControl1.FindControl("checkBoxList1");

But a better solution in my mind would be to expose the checked items through a property or method.

In user control

public string[] CheckedItems {
    get {
        List<string> checkedItems = new List<string>();
        foreach (ListItem item in checkbox1.Items)
            checkedItems.Add(item.Value);

        return checkedItems.ToArray();
    }
}

Then in the page

var checkedItems = userControl1.CheckedItems; 

You could also just return checkbox1.Items in the property, but that isn't good encapsulation.

夜清冷一曲。 2024-08-16 01:27:20

如果您使用的是 .net 3.5,则可以创建一个只读属性,该属性使用 LINQ 返回仅包含所选值的 IList:

  public IList<string> SelectedItems{
       get {
          return checkbox1.Items.Cast<ListItem>.Where(i => i.Selected).Select(j => j.Value).ToList();
       }

    }

If you are using .net 3.5, you can create a readonly property that uses LINQ to return an IList of just the selected values:

  public IList<string> SelectedItems{
       get {
          return checkbox1.Items.Cast<ListItem>.Where(i => i.Selected).Select(j => j.Value).ToList();
       }

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