C# asp.net ObjectDataSource从代码隐藏更新

C# asp.net ObjectDataSource从代码隐藏更新,c#,asp.net,objectdatasource,C#,Asp.net,Objectdatasource,我有一个ASP.NET应用程序,在一个页面上有一个gridview,它使用ObjectDataSource调用另一个名为“Device”的类中的方法。这个类返回一个特殊的数据表。这是有效的 现在我需要一个更新数据的方法,为此我不能使用类设备,所以我想使用代码后面网格的“rowUpdate”方法。我甚至为这个方法编写了代码,它正在工作,如果用户单击网格中的“更新”按钮,这个方法就会启动 现在来谈谈问题。因为我正在使用ObjectDataSource,并且在该网格中有一个Update命令,所以我还需

我有一个ASP.NET应用程序,在一个页面上有一个gridview,它使用ObjectDataSource调用另一个名为“Device”的类中的方法。这个类返回一个特殊的数据表。这是有效的

现在我需要一个更新数据的方法,为此我不能使用类设备,所以我想使用代码后面网格的“rowUpdate”方法。我甚至为这个方法编写了代码,它正在工作,如果用户单击网格中的“更新”按钮,这个方法就会启动

现在来谈谈问题。因为我正在使用ObjectDataSource,并且在该网格中有一个Update命令,所以我还需要为此ObjectDataSource指定和更新方法,这就是重点。 我希望使用代码隐藏中的RowUpdate方法,而不是ObjectDataSource中的update方法。我当前的解决方案是类“Device”中的一个方法,它只是通过一个“return”命令返回,因此来自我的代码隐藏的行更新正在做这项工作。。。但这不可能是“它工作的唯一方式”

如能提供帮助和更多提示,将不胜感激。
谢谢大家!

如果使用ObjectDataSource,则必须在一个类中编写更新和选择方法。也许您必须直接为该GridView编写一个类,以将更新和选择方法委托给其他对象

我认为这将对你有用:

[DataObject(true)]
public class SomeService
{
    private Device d;
    private YourUpdaterClass yuc;

    public SomeService()
    {
        this.d = new Device();
        this.yuc = new YourUpdaterClass();
    }

    [DataObjectMethod(DataObjectMethodType.Select, true)]
    public List<YourType> Select()
    {
        return d.YourSelectMethod();
    }

    [DataObjectMethod(DataObjectMethodType.Update, true)]
    public void Update(YourType yt)
    {
        yuc.YourUpdateMethod(yt);
    }
}
[数据对象(真)]
公共类服务
{
专用设备d;
私人YourUpdaterClass yuc;
公共服务
{
this.d=新设备();
this.yuc=新的YourUpdaterClass();
}
[DataObjectMethod(DataObjectMethodType.Select,true)]
公共列表选择()
{
返回d.YourSelectMethod();
}
[DataObjectMethod(DataObjectMethodType.Update,true)]
公共作废更新(yt类型)
{
yuc.YourUpdateMethod(yt);
}
}
以及ObjectDataSource:

<asp:ObjectDataSource 
   ID="ObjectDataSource1"
   runat="server" 
   SelectMethod="Select"
   TypeName="SomeService"
   DataObjectTypeName="YourType"
   UpdateMethod="Update">
</asp:ObjectDataSource>

Hm感谢您的回答,但无法使用网格的更新事件,对吗?使用您提供的解决方案,我可以解决我的问题,但这需要对我的体系结构进行一些更改