我使用的是vb.net power pack中的winform数据传输器控件。
中继器上的所有项目都是只读的,但复选框列除外。
我想遍历这些项,并找出选中了哪些复选框。
我在控件上找不到datarepeateritem的集合,并且缺少帮助。
谢谢你的帮助。
发布于 2010-01-04 09:55:04
您可以遍历控件列表(从模板生成)
private void button3_Click(对象发送者,EventArgs e) { int i= 0;CheckBox unboundCheckBox;foreach (dataRepeater1.Controls中的控件c){ unboundCheckBox = c.Controls"checkBoxUnbound“as CheckBox;if (unboundCheckBox != null && unboundCheckBox.Checked) { i++;}} Console.WriteLine("DEBUG: checked found:”+ i);}
发布于 2011-12-02 19:58:50
这个问题在一段时间前就被问到了,但只是为了以防万一其他人在寻找答案:
for (int i = 0; i < this.dataRepeater1.ItemCount; i++)
{
this.dataRepeater1.CurrentItemIndex = i;
CheckBox checkBox = (CheckBox)
this.dataRepeater1.CurrentItem.Controls["controlName"];
bool isChecked = checkBox.Checked;
}这种方法使得处理/读取同一中继器项上的任何相关控件变得更加容易。
发布于 2010-01-02 21:33:09
为什么不直接检查datarepeater的数据源呢?
例如,我有一个绑定到个人Bindingsource的datarepeater请参阅按钮处理程序
private void Form1_Load(object sender, EventArgs e)
{
List<Person> persons = new List<Person>();
persons.Add(new Person { Name = "Peter", IsLocal = true });
persons.Add(new Person { Name = "Sepp", IsLocal = false });
persons.Add(new Person { Name = "Franz", IsLocal = false });
personBindingSource.DataSource = persons;
}
private void buttonCountCheckBox_Click(object sender, EventArgs e)
{
int i = 0;
foreach (Person singlePerson in personBindingSource)
{
if (singlePerson.IsLocal)
{
i++;
}
}
Console.WriteLine("DEBUG: checked found: " + i);
}https://stackoverflow.com/questions/591391
复制相似问题