2013-10-08 32 views
0

我需要从数据表中创建一个objectdatasource。我现在有一个方法,即生成datatble:将数据表转换为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(); 
     } 
    } 
}