【问题标题】:ASP.NET ObjectDataSource problemASP.NET ObjectDataSource 问题
【发布时间】:2009-11-18 02:15:30
【问题描述】:

这是我所有类的通用结构:

public class User
{
    public int ID { get;set; }
    public string User_name { get; set; }
    public string Pass_word { get; set; }
    public string UserTypeCode { get; set; }

    public int SaveOrUpdate()
    {
        int id = -1;

        if (this._ID <=0)
        {
            id = this.Save();
        }
        else
        {
            bool success = this.Update();

            if(success)
            {
                id = this._ID;
            }
            else
            {
                throw new Exception("Update failed!");
            }
        }

        return id;
    }

    private int Save() { }
    private bool Update() { }
    public static User Get(int id) { }
    public static List<User> Get() { }
    public bool Delete() { }
}

我在 winforms 中顺利使用了这些类。

但是在使用 ASP.NET 时,当我尝试为 GridView 配置对象数据源时,我在 Data Source Configuration Wizard 中找不到方法名称。 IE。他们没有出现。所以我的方法变得没用了。

我无法更改我所有课程的一般结构。我还为他们编写了一个代码生成器。而且我必须使用ObjectDataSources

我的第一个问题是,他们为什么不出现?

而且,我应该怎么做才能让它们出现?

【问题讨论】:

  • 您能从 aspx 页面和/或代码隐藏中发布代码吗?这可能更有助于发现错误。
  • 哦,没关系,我猜你说你甚至无法配置标签。

标签: asp.net objectdatasource


【解决方案1】:

ObjectDataSources 在指定类型内查找与更新/插入方法名称的签名和提供的更新/插入参数匹配的方法。

您的SaveOrUpdate 方法在实例化类上,ObjectDataSource 将找不到匹配的方法签名。

根据您所拥有的,如果您必须使用 ObjectDataSources,您可能需要考虑使用包装器方法。 Example.

【讨论】:

  • +1 来自我。签名很重要。所以我的回答不正确。
【解决方案2】:

我不太确定,但你可以尝试用DataObjectAttribute 标记这个类,用DataObjectMethodAttribute 标记CRUD 方法。我已经很久没有使用ObjectDataSource了,所以可以忘记一些东西。

【讨论】:

  • 我知道,你需要特别签名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多