在c#中使用变量来引用web服务器控件
本文关键字:引用 web 服务器控件 变量 | 更新日期: 2023-09-27 18:09:08
在c#中,我想给我的页面上的所有10个checklistbox分配一个值(例如1)。我可以使用变量的语法是什么?即checklistbox(i).selectedIndex = 1;
for (int i = 1; i < 11; i++)
{
checklistbox1.selectedIndex = 1;
checklistbox2.selectedIndex = 1;
checklistbox3.selectedIndex = 1;
...
checklistbox10.selectedIndex = 1;
}
我猜你应该使用"FindControl"方法来做到这一点,如下所示。
for (int i = 1; i <= 10; i++)
{
(Page.FindControl("checklistbox" + i) as CheckBox).SelectedIndex = 1;
}
假定"checklistbox"为"ID",为所有复选框加前缀。
希望这有帮助!!
你可以遍历页面上的所有控件,挑选出你需要的,正如Kris Steele在这篇博文中所描述的:
foreach (Control masterControl in Page.Controls)
{
if (masterControl is MasterPage)
{
foreach (Control formControl in masterControl.Controls)
{
if (formControl is System.Web.UI.HtmlControls.HtmlForm)
{
foreach (Control contentControl in formControl.Controls)
{
if (contentControl is ContentPlaceHolder)
{
foreach (Control childControl in contentControl.Controls)
{
if(childControl is CheckBoxList)
{
((CheckBoxList)childControl).SelectedIndex = 1;
}
}
}
}
}
}
}
}
如果页面上有很多控件,这可能不是一个好主意。
您应该创建List<CheckBoxList>
:
var cbs = new List<CheckBoxList> { thingy, otherThingy, ... };
foreach (var cb in cbs)
cb.SelectedIndex = 0;