c# - 获取 ASP.NET 的通用方法未选中复选框列表或单选按钮列表中的项目?

标签 c# asp.net

我有一种方法可以像这样获取复选框列表中未选中的项目:

public static string[] GetNotSelectedCheckboxes(CheckBoxList list)
{
    ArrayList values = new ArrayList();
    for (int counter = 0; counter < list.Items.Count; counter++)
    {
        if (!list.Items[counter].Selected)
        {
            values.Add(list.Items[counter].Value);
        }
    }
    return (String[])values.ToArray(typeof(string));
}

我现在需要在单选按钮列表中获取未选中的项目,我复制了相同的方法,而不是将 CheckBoxList 作为参数,而是使用 RadioButtonList

public static string[] GetNotSelectedRadioButtons(RadioButtonList list)
{
    ArrayList values = new ArrayList();
    for (int counter = 0; counter < list.Items.Count; counter++)
    {
        if (!list.Items[counter].Selected)
        {
            values.Add(list.Items[counter].Value);
        }
    }
    return (String[])values.ToArray(typeof(string));
}

现在代码做了完全相同的事情,我读了一些关于泛型方法的内容,这是我应该使用的地方吗?我查看了它,但没有得到正确的语法,如果我没有明确地将其指定为单选或复选框列表,我不确定如何使用 list.Items

我是否应该在这里使用通用方法以及关于我应该如何处理它的任何输入?

提前致谢。

最佳答案

您可以使用泛型...但在这种情况下,使用简单数据列表控件的基类来使用多态似乎更容易

public static string[] GetNotSelectedRadioButtons(ListControl list)

如果你想实现泛型:

public static string[] GetNonSelectedItems<T>(T list) where T : ListControl
{
    ... do your stuff
}

关于c# - 获取 ASP.NET 的通用方法未选中复选框列表或单选按钮列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488342/

相关文章:

c# - 将异步流写入 Azure Blob 存储

c# - 检测重叠重复时间段的算法

asp.net - HTML 源代码中的大 View 状态

c# - 如何从 ASP.NET MVC 项目引用 Web 服务?

c# - 在 Razor ASP.NET MVC 中调用方法

c# - 如何使用 .NET 读取 ASP.NET 内部服务器错误描述?

c# - 在计时器经过回调时调用没有 Monitor.Exit 的 Monitor.TryEnter 显示意外行为

javascript - 带有换行符的 C# 模型字符串到 javascript 变量

c# - 并行任务的最大数量是否有一般规则?

javascript - aspx 不会看到 javascript 所做的更改吗?