C# · 4月 3, 2022

c# – 获取中继器的项目

@H_301_1@ 我试图在页面移动(分页)之前获取所有转发器选中的转发器项目的复选框,并将它们存储在某个地方.

foreach (RepeaterItem ri in rpt.Items) { Check@R_816_2419@ @R_816_2419@ = (Check@R_816_2419@)ri.FindControl(“chk@R_816_2419@”); if (@R_816_2419@.Checked) { … } }

问题是我从哪里调用此函数?
我试图从ObjectDataSource1_Selected(我使用objectdatasource填充转发器)和ObjectDataSource1_Selecting调用它,但rpt.Items.Count也是0.

rpt_PreRender()事件,返回正确数量的项目,但它在选中复选框之前发生,而不是之后.

我能做什么?

解决方法 您正在寻找的方式是不可能的…请尝试使用此代码…

if (Repeater1.Items.Count > 0) { for (int count = 0; count < Repeater1.Items.Count; count++) { Check@R_816_2419@ chk = (Check@R_816_2419@)Repeater1.Items[count].FindControl(“Check@R_816_2419@1”); if (chk.Checked) { } } }