2013-10-08 3 views
0

Мне нужно создать objectdatasource из datatable. Я в настоящее время есть метод, который генерирует datatble:Преобразование datatable в objectdatasource

static DataTable GetTableForDropDown() 
    { 

     DataTable dt = new DataTable(); 
     DataRow dr = null; 
     dt.Columns.Add(new DataColumn("DurationType", typeof(string))); 

     dr = dt.NewRow(); 
     dr["DurationType"] = "Hours"; 
     dt.Rows.Add(dr); 

     dr = dt.NewRow(); 
     dr["DurationType"] = "Days"; 
     dt.Rows.Add(dr); 

     dr = dt.NewRow(); 
     dr["DurationType"] = "Weeks"; 
     dt.Rows.Add(dr); 

     dr = dt.NewRow(); 
     dr["DurationType"] = "Months"; 
     dt.Rows.Add(dr); 
     return dt; 
    } 

И мне нужно, чтобы создать и ObjectDataSource и загрузить его в нее. Я нашел очень мало документации или о том, как это сделать. Я нашел следующий код, чтобы попытаться преобразовать его, но он просто выдает ошибку, когда я пытаюсь.

var edgeDataSource = new ObjectDataSource(
      "MyNamespace.MyClass, MyNamespace.MyClasss, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ce8ab85a8f42a5e8", 
      "GetTableForDropDown") {ID = "EdgeDataSource"}; 

ответ

1

Что вы могли бы попробовать это (я кладу его в одном файле только для простоты)

namespace MyNamespace 
{ 
    public class MyClassData 
    { 
     public string DurationType { get; set; } 
    } 

    public class MyClass 
    { 
     public List<MyClassData> GetTableForDropDown() 
     { 
      List<MyClassData> myList = new List<MyClassData>(); 
      myList.Add(new MyClassData { DurationType = "Hours" }); 
      myList.Add(new MyClassData { DurationType = "Days" }); 
      myList.Add(new MyClassData { DurationType = "Weeks" }); 
      myList.Add(new MyClassData { DurationType = "Month" }); 
      return myList; 
     } 
    } 

    public partial class WebForm18 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      var edgeDataSource = new ObjectDataSource("MyNamespace.MyClass", "GetTableForDropDown"); 
      var x = edgeDataSource.Select(); 
     } 
    } 
} 
Смежные вопросы