2013-07-31 3 views
0

Возможно ли создать сетчатое представление на основе списка? У меня есть следующий список:Редактируемое gridview на основе списка

ID = 1 
Name = John 
Zip = 33141 
ID = 2 
Name = Tim 
Zip = 33139 

Я хочу, чтобы иметь возможность создавать редактируемые GridView с этим списком

Когда я связать его с точки зрения сетки, она, кажется, поставить Everyting в одну колонку, и я не могу понять, как заставить его отделить его в разные колонки

Вот мой код для установки DataSource в GridView:

DataTable table = ConvertListToDataTable(personList); 
GridView1.DataSource = table; 
GridView1.DataBind(); 

static DataTable ConvertListToDataTable(List<string> list) 
{ 
    // New table. 
    DataTable table = new DataTable(); 

    // Get max columns. 
    int columns = 7; 

    // Add columns. 
    for (int i = 0; i < columns; i++) 
    { 
     table.Columns.Add(); 
    } 

    // Add rows. 
    foreach (var rd in list) 
    { 
     table.Rows.Add(rd); 
    } 

    return table; 
} 

ответ

0

Вот пример:

private class Person 
    { 
     int m_iID; 
     string m_sName; 
     string m_sZip; 

     public int ID { get { return m_iID; } } 
     public string Name { get { return m_sName; } } 
     public string Zip { get { return m_sZip; } } 

     public Person(int iID, string sName, string sZip) 
     { 
      m_iID = iID; 
      m_sName = sName; 
      m_sZip = sZip; 
     } 
    } 

    private List<Person> m_People; 

    private void ConvertListToDataTable(List<Person> People) 
    { 
     DataTable table = new DataTable(); 

     DataColumn col1 = new DataColumn("ID"); 
     DataColumn col2 = new DataColumn("Name"); 
     DataColumn col3 = new DataColumn("Zip"); 

     col1.DataType = System.Type.GetType("System.String"); 
     col2.DataType = System.Type.GetType("System.String"); 
     col3.DataType = System.Type.GetType("System.String"); 

     table.Columns.Add(col1); 
     table.Columns.Add(col2); 
     table.Columns.Add(col3); 


     foreach (Person person in People) 
     { 
      DataRow row = table.NewRow(); 
      row[col1] = person.ID; 
      row[col2] = person.Name; 
      row[col3] = person.Zip; 

      table.Rows.Add(row); 
     }    

     GridView1.DataSource = table; 
     GridView1.DataBind(); 
    } 
+0

awesome пример, большое спасибо. – user2593590

+0

Как создать класс Person в отдельном файле класса и использовать его в моем коде для формы? – user2593590

+0

Добавить новый элемент -> Код -> Класс. Затем создайте/переместите класс Person в него. Внутри кода формы за файлом используйте файл класса с «Использование ProjectNamespace.Folder». Например, если ваш файл класса находится в вашей папке App_Code: Использование ProjectNamespace.App_Code; , Обязательно выберите этот ответ, если он ответит на ваш вопрос! – Mausimo

Смежные вопросы