查找是否选中了转发器中的复选框属于哪种性别

时间:2012-01-26 17:07:49

标签: asp.net checkbox find repeater

我有一个转发器,其中有一个带有复选框的列和一个带有性别的列,我填充了数据库值。

我想知道用户是否选择了多个相同性别的复选框,例如男性如果这样做的话另外如果用户选择多个男性和女性混合的复选框,那么就做其他事情。

到目前为止,我正在考虑将其添加到列表中,然后查看列表是否具有相同的值,但不确定是否最好是这里是我的代码(我有一个隐藏的字段来获取性别),我正在运行此点击按钮事件:

 foreach (RepeaterItem rptItem in myrepeater.Items)
        {
            hiddenGender = rptItem.FindControl("hiddenGender") as HiddenField;

            if (Convert.ToInt32(hiddenGender.Value) == 0)
            {
                gender.Add(0);
            }
            else if (Convert.ToInt32(hiddenGender.Value) == 1)
            {
                gender.Add(1);
            }
            else if (Convert.ToInt32(hiddenGender.Value) == 2)
            {
                gender.Add(2);
            }
        }

ps没有使用linq,因为它是框架2.0

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解你想做什么,但如果我这样做,这段代码也会这样做:

foreach (RepeaterItem rptItem in myrepeater.Items)
{
     hiddenGender = rptItem.FindControl("hiddenGender") as HiddenField;
     gender.Add(Convert.ToInt32(hiddenGender.Value));
}

答案 1 :(得分:0)

得到它,这是可能帮助他人的代码(首先我得到第一个项目,看看它是否与下一个项目匹配):

public static bool ListEquality(IEnumerable<int> lstGender)
{
    int? first = null;
    bool isUnique = true;
    foreach (var item in lstGender)
    {
        if (first == null)
        {
            first = item;
        }
        else if (first.Value != item)
        {
            isUnique = false;
        }
    }
    return isUnique;
}