我正在使用Visual Studio 2008,在AppCode文件夹中包含了一个类,并希望在ObjectDataSource中使用它的函数。
<asp:GridView ID="GridView1"
AutoGenerateColumns="true"
DataSourceID="ObjectDataSource1" runat="server">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1"
SelectMethod="GetCustomers"
TypeName="MyNamespace.CustomerManager"
runat="server"></asp:ObjectDataSource>
namespace MyNamespace
{
public class Customer
{
public string Name { get; set; }
}
public class CustomerManager
{
public List<Customer> GetCustomers()
{
List<Customer> cust = new List<Customer>();
Customer c = new Customer();
c.Name = "sampleName";
cust.Add(c);
return cust;
}
}
}
这样一来,我就能在 GridView 中看到客户的详细信息了。
我曾经遇到过同样的问题,最终通过将App_Code
添加到TypeName
中来解决...这是一个简单的修复方法,但花了很多时间才意识到它。(来自示例)
<asp:ObjectDataSource ID="ObjectDataSource1"
SelectMethod="GetCustomers"
TypeName="MyNamespace.App_Code.CustomerManager"
runat="server">
</asp:ObjectDataSource>
如果您已经尝试了以上所有方法,那么可能是您的计算机问题,可能是您的计算机不支持该功能。
您可以始终手动将对象名称输入到objectDatasource中,格式为:
namespace.classname,App_Code
对于网站项目,App_Code可以使用;否则,如果是Web应用程序项目模板,则指定Web项目的程序集名称。
希望对您有所帮助。
请检查您的web.config文件中是否存在VS条目,例如可能导致此问题的部分(删除条目并重新构建)。