我在一个页面上拖了个GridView,数据源为ObjectDataSource,但是为什么在"Choose your business object"下拉框下面没有的选择啊?

解决方案 »

  1.   

    那试试在代码下直接实现:DataSourceId="ObjectDataSourceID" 看可行不?
      

  2.   

    那些所谓business object必须在App_Code目录下,或者是在其它的DLL里,且被引用到bin目录的情况下才能看见。一般这种类都用System.ComponentModel.DataObject标注。如using System.ComponentModel;[DataObject(true)]
    public class MyClass
    {
        [DataObjectMethod(DataObjectMethodType.Select, true)]
        public DataTable GetData()
        {
            //...
            return ...;
        }
    }
      

  3.   

    还是举个例子吧。你在App_Code目录下新建一个类,如:
    using System.ComponentModel;/// <summary>
    ///Class1 的摘要说明
    /// </summary>
    [DataObject(true)]
    public class Class1
    {
        public Class1()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        [DataObjectMethod(DataObjectMethodType.Select, true)]
        public DataTable GetData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Age", typeof(int));        for (int i = 0; i < 10; i++)
            {
                DataRow row = dt.NewRow();
                row["Name"] = "Name" + i;
                row["Age"] = i;
                dt.Rows.Add(row);
            }
            return dt;
        }
    }
    生成一下网站,然后,你在aspx页面上放一个GridView,指定ObjectDataSource为数据源,下一步,你会发现下拉框里有个Class1, 再下一步就这么简单。