我有一个ASP.NET应用程序,在一个页面上有一个gridview,它使用ObjectDataSource来调用位于另一个名为“Device”的类中的方法。那么这个类返回一个speciala数据表。这很有效。
现在我需要一种更新数据的方法,为此我不能使用类Device,所以我想从后面的代码中使用该网格的“RowUpdating”方法。我甚至为这个方法编写了代码,如果用户单击网格中的“更新”按钮,它就会正常工作并触发该方法。
现在问题。因为我正在使用ObjectDataSource,并且我在该网格中有一个Update-command,我还需要为此ObjectDataSource指定和Update-method,这就是重点。 我想使用我后面的代码中的RowUpdating方法,而不是来自ObjectDataSource的更新方法。我目前的解决方案是“设备”类中的一个方法,它通过“返回”命令返回,因此我的代码后面的RowUpdating正在完成工作......但这不是“它的工作方式的唯一方式”。
帮助和进一步的提示将不胜感激。 谢谢!
答案 0 :(得分:0)
如果使用ObjectDataSource,则必须在一个类中编写update和select方法。也许您必须直接为该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);
}
}
和ObjectDataSource:
<asp:ObjectDataSource
ID="ObjectDataSource1"
runat="server"
SelectMethod="Select"
TypeName="SomeService"
DataObjectTypeName="YourType"
UpdateMethod="Update">
</asp:ObjectDataSource>