2011-05-09 31 views
0

asp:listbox中的項目導出到數據集最簡單的方法是什麼?將列表框項目導出到數據集

+1

你是如何將項目放到列表框中的?他們是硬編碼還是數據綁定? – 2011-05-09 13:42:11

+0

兩者都有(!)這就是問題所在。列表框中的每個項目都從另一個列表框中複製 - 無論是單獨還是組中。這個原始列表框是databound。 – Urbycoz 2011-05-09 13:58:33

+0

好的,看我的答案,應該全面工作 – 2011-05-09 14:04:41

回答

1

這是無論你如何填充它應該工作,想不出一個更快的方法相當直接的方式......

public static DataTable GetListBoxItems(ListBox listBox) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("Value"); 
     dt.Columns.Add("Text"); 
     dt.Columns.Add("Selected"); 
     dt.Columns.Add("Attributes"); 


     foreach (ListItem itm in listBox.Items) 
     { 
      DataRow dr = dt.NewRow(); 
      dr[0] = itm.Value; 
      dr[1] = itm.Text; 
      dr[2] = itm.Selected; 
      dr[3] = itm.Attributes; 
      dt.Rows.Add(dr); 
     } 
     return dt; 
    } 

或與擴展方法:

public static class Extensions 
    { 
     public static DataTable GetListBoxItems(this ListBox listBox) 
     { 
      DataTable dt = new DataTable(); 

      dt.Columns.Add("Value"); 
      dt.Columns.Add("Text"); 
      dt.Columns.Add("Selected"); 
      dt.Columns.Add("Attributes"); 


      foreach (ListItem itm in listBox.Items) 
      { 
       DataRow dr = dt.NewRow(); 
       dr[0] = itm.Value; 
       dr[1] = itm.Text; 
       dr[2] = itm.Selected; 
       dr[3] = itm.Attributes; 
       dt.Rows.Add(dr); 
      } 
      return dt; 
     } 
    } 

然後你可以這樣稱呼它:

ListBox1.GetListBoxItems(); 
相關問題