2015-11-14 72 views
0

我在我的aspx文件中有5個Checkboxlist。有沒有辦法使用foreach循環填充每個Checkboxlist?這樣我就不會重複代碼來填充每個複選框列表。下面是我的代碼填充CheckBoxList的如何在所有CheckBoxList中循環,然後填充它們?

CheckBoxList1.DataSource = dataTable.dbdata(sqlRawItems, 1); 
CheckBoxList1.DataTextField = "StudentName"; 
CheckBoxList1.DataValueField = "StudentID"; 
CheckBoxList1.DataBind(); 
+0

他們都填充了完全相同的數據循環做財產以後也是這樣嗎? –

+0

不,我有一個類可以傳遞sql參數來獲取他們自己的數據。 –

回答

1
private void PopulateIt(CheckBoxList chk,string dataTextField, 
      string dataValueField,sqlRawItems) //I don't really know what sqlRawItems is 
{ 
    chk.DataSource = dataTable.dbdata(sqlRawItems, 1); 
    chk.DataTextField = dataTextField; 
    chk.DataValueField = dataValueField; 
    chk.DataBind(); 
} 

然後就可以調用它,無論你需要它。

PopulateIt(CheckBoxList1,"StudentName","StudentID",sqlRawItems); 
PopulateIt(CheckBoxList2,"StudentName","StudentID",sqlRawItems); 
PopulateIt(CheckBoxList3,"StudentName","StudentID",sqlRawItems); 
PopulateIt(CheckBoxList4,"StudentName","StudentID",sqlRawItems); 
PopulateIt(CheckBoxList5,"StudentName","StudentID",sqlRawItems); 

我不知道怎麼ASP.Net的作品,但在WinForm的,你可以通過你的控件

foreach (CheckBox chk in this.Controls.OfType<CheckBoxList>()) 
{ 
    //Of cource assuming that all the controls will bind by same data 
    PopulateIt(chk ,"StudentName","StudentID",sqlRawItems);   
} 
+0

嗨,亞歷克斯,謝謝你的幫助。它幫助我很大。 hehehe我剛剛應用我的checkboxlistS陣列,而我用循環代替。此代碼does not工作/確認this.Controls.OfType ()但它給了我一個想法。再次,非常感謝。我是一個c#/ asp.net程序員,剛剛看到你說的個人資料,你說我在c#上花了很長時間。爲什麼? –

+0

@FrancisSaul很高興能幫到你。我之所以這麼說,是因爲我看到這裏有一個整體世界,與我看到的世界其他地方相比,'.Net'非常有限,並且可能非常令人沮喪(我現在正在使用c#大約十年左右)。只要看看python,java,javascript等等是多麼強大。 –

相關問題