从代码隐藏 asp.net 对象数据源更新
本文关键字:对象 数据源 更新 net asp 代码 隐藏 | 更新日期: 2023-09-27 18:34:56
我有一个 ASP.NET 应用程序,在一个页面上有一个网格视图,它使用ObjectDataSource调用位于另一个名为"Device"的类中的方法。那么,这个类返回一个特殊的数据表。这是有效的。
现在我需要一种更新数据的方法,为此我无法使用类 Device,因此我想从代码隐藏中使用该网格的"RowUpdating"方法。我什至为此方法编写了代码,如果用户单击网格中的"更新"按钮,它正在工作并且该方法会触发。
现在进入问题。因为我正在使用 ObjectDataSource,并且我在该网格中有一个 Update-命令,所以我还需要为此 ObjectDataSource 指定和 Update-method,这就是重点。我想使用我的代码隐藏中的 RowUpdating-方法,而不是来自该 ObjectDataSource 的更新方法。我当前的解决方案是"设备"类中的一种方法,它只是通过"返回"命令返回,因此我背后的代码中的 RowUpdate 正在完成这项工作......但这不能是"它如何运作的唯一方式"。
帮助和进一步的提示将不胜感激。谢谢!
如果使用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);
}
}
和对象数据源:
<asp:ObjectDataSource
ID="ObjectDataSource1"
runat="server"
SelectMethod="Select"
TypeName="SomeService"
DataObjectTypeName="YourType"
UpdateMethod="Update">
</asp:ObjectDataSource>