如果选中了复选框,如何获取标签的内容?

时间:2012-02-24 21:17:33

标签: asp.net listview checkbox webforms label

我有一个包含多列的列表视图。其中一列是复选框,另一列是标签。还有其他列,但它们与此问题并不真正相关。在此页面上按钮的单击事件中,如果选中了与其相邻的复选框,我想要读取标签的值。如何阅读标签内容?

我到目前为止的代码包含在下面。代码运行但永远不会检查复选框的已检查状态。我检查了itemTemplate以确认名称并确保此问题不是拼写错误的结果。

        CheckBox chkSelected;
        List<int> selectedIds = new List<int>();


        foreach (var x in lvPeople.Items)
        {
            chkSelected = (CheckBox)x.FindControl("IsAlumni");

            if (chkSelected.Checked)
            {
                int id = (int)lvPeople.DataKeys[x.DisplayIndex].Value;                    

                selectedIds.Add(id);
            }
        }

1 个答案:

答案 0 :(得分:1)

你会有这样的事情:

foreach (var x in lvPeople.Items)
{
    chkSelected = (CheckBox)x.FindControl("IsAlumni");

    if (chkSelected.Checked)
    {
        int id = (int)lvPeople.DataKeys[x.DisplayIndex].Value;

        var myLabel = (Label)x.FindControl("lblContactId");
        var myLabelContent = myLabel.Text;                  

        selectedIds.Add(id);
    }
}

例如,在所选项目事件中,您可以使用以下代码:

CheckBox chkSelected =
           lvPeople.Items(lvPeople.SelectedIndex).FindControl("IsAlumni") as CheckBox;