例如,我有3個複選框,其ID爲checkbox1,checkbox2,checkbox3。我需要在代碼後面進行循環,並根據我的sql隊列結果禁用它們。但是,如果我有超過10個複選框,我不能一個接一個地做,而且有很多邏輯要檢查。我該怎麼做?謝謝。如何通過asp.net中的控件名稱中的數字循環控件
0
A
回答
0
您可以使用Control.FindControl在容器中使用它們的id來獲取控件。如果您在表單上有複選框,您可以使用this.FindControl
。
int numberofControls=4;
for(int i=1; i < numberofControls; i++)
((CheckBox)parentControlId.FindControl("checkbox" + i)).Enabled = false;
如果有任何機會,你不會有你正在尋找的控制,那麼最好檢查你是否得到了控制。
for(int i=1; i < numberofControls; i++)
{
CheckBox checkbox = ParentControl.FindControl("checkbox" + i) as Checkbox;
if(checkbox != null)
checkbox.Enabled = false;
}
0
一種常見的方法是聲明一個數組,並把所有的控件在那裏:
Checkbox[] checkboxes = new Checkbox[]{CheckboxOne, CheckboxTwo, AnotherCheckbox};
你可以通過這個循環容易。請注意,這允許控件的任意名稱。
另一種只適用於您的控件ID字面上遵循模式ControlNameX的方法是使用FindControl
。
for (int i=1; i<=3; i++)
{
Checkbox c = ParentControl.FindControl("Checkbox" + i) as Checkbox;
}
還要注意的是FindControl
對直接父,這意味着所有的控制你通過循環必須是一個共同的父控件內部被調用。
相關問題
- 1. 循環通過控件asp.net
- 2. 通過控件訪問VBA循環顯示字段值作爲控件名稱
- 3. ASP.net通過控制在表中循環
- 4. 如何通過名稱獲得控件
- 5. ASP.Net中的循環槽控件C#
- 6. 如何通過TabItem中的控件循環
- 7. 如何動態地通過asp.net控件循環?
- 8. 循環通過UserControl的控件
- 9. 重構ASP.NET控件名稱
- 10. 循環通過所有控件[MaterialSkin](C#)
- 11. 循環通過對Web用戶控件
- 12. 通過動態創建控件循環
- 13. Excel VBA - 通過ListBox控件循環
- 14. 通過循環控件清除DropDownList
- 15. 通過HTML控制循環 - ASP.NET
- 16. 通過類似命名的控件循環
- 17. ASP.NET VB.NET通過類似命名的窗體控件循環使用
- 18. ASP.NET MVC中的用戶控件內的ASP.NET控件的命名
- 19. 如何在ASP.NET中正確重構控件的名稱空間
- 20. asp.net循環通過表中的動態控制
- 21. 如何訪問通過名稱添加到C#的控件
- 22. 如何通過ListView控件中的Android
- 23. 當ASP.net僅返回名稱時,通過JS中的ID選擇控件
- 24. VB.Net通過名稱使用變量循環控制
- 25. ASP.NET:通過用戶控件
- 26. 如何使用循環在asp.net表格控件中綁定TableRow?
- 27. 如何提交文件,只循環通過jqgrid中名稱的表單元素
- 28. 如何通過C lang中的循環更改對象名稱?
- 29. 通過FileUpload控件上傳txt文件的循環槽線
- 30. 如何通過循環獲取所有字段的名稱。
首先你說你有三個複選框,那麼你說你有超過10個。不是很清楚。 –
@TimSchmelter,首先是打印較少名字的例子,然後是10+以上真正的OP用例。聽起來很清楚 – Andrei
你不應該添加邏輯到你的控制ID。名稱只是一個名稱,應該比'checkbox14'更有意義。使用具有多個屬性的類,其中一個屬性爲「bool」屬性。然後從你的數據庫查詢中初始化它,並把它們放在'List'中。在'TemplateFields'中使用'GridView','Repeater'或'DataList',並將'CheckBox'放在那裏。然後將其綁定並將您的邏輯放入適當的事件處理程序f.e. 'RowDataBound'如果你使用'GridView'。 –