Asp.net 将datatable转换为objectdatasource
我需要从datatable创建objectdatasource。我目前有一个方法,可以生成一个datatble:Asp.net 将datatable转换为objectdatasource,asp.net,datatable,radgrid,objectdatasource,Asp.net,Datatable,Radgrid,Objectdatasource,我需要从datatable创建objectdatasource。我目前有一个方法,可以生成一个datatble: static DataTable GetTableForDropDown() { DataTable dt = new DataTable(); DataRow dr = null; dt.Columns.Add(new DataColumn("DurationType", typeof(string)));
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"};
你可以试试这个(为了简单起见,我把它放在一个文件中)
名称空间MyNamespace
{
公共类MyClassData
{
公共字符串DurationType{get;set;}
}
公共类MyClass
{
公共列表GetTableForDropDown()
{
List myList=新列表();
添加(新的MyClassData{DurationType=“Hours”});
添加(新的MyClassData{DurationType=“Days”});
添加(新的MyClassData{DurationType=“Weeks”});
添加(新的MyClassData{DurationType=“Month”});
返回myList;
}
}
公共部分类WebForm18:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
var-edgeDataSource=newobjectdatasource(“MyNamespace.MyClass”、“GetTableForDropDown”);
var x=edgeDataSource.Select();
}
}
}
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();
}
}
}