我有一个包含多列的列表视图。其中一列是复选框,另一列是标签。还有其他列,但它们与此问题并不真正相关。在此页面上按钮的单击事件中,如果选中了与其相邻的复选框,我想要读取标签的值。如何阅读标签内容?
我到目前为止的代码包含在下面。代码运行但永远不会检查复选框的已检查状态。我检查了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);
}
}
答案 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;