Vb.net GridView在ItemCommand上更新

Vb.net GridView在ItemCommand上更新,vb.net,gridview,itemcommand,Vb.net,Gridview,Itemcommand,我将所有自定义的“更新”代码放在RowCommand事件中,它工作正常,但我仍然从数据源中得到一个错误 System.NotSupportedException:正在更新 ObjectDataSource不支持 “GetSources”,除非使用UpdateMethod 是指定的 如何消除该错误,是的,仍然在row命令上使用我的自定义更新代码?好吧,我认为ObjectDataSource的使用方式是在自定义业务对象中指定方法的名称,它将使用反射来调用该方法 因此,您的页面和对象可能如下所示: &

我将所有自定义的“更新”代码放在RowCommand事件中,它工作正常,但我仍然从数据源中得到一个错误

System.NotSupportedException:正在更新 ObjectDataSource不支持 “GetSources”,除非使用UpdateMethod 是指定的


如何消除该错误,是的,仍然在row命令上使用我的自定义更新代码?

好吧,我认为ObjectDataSource的使用方式是在自定义业务对象中指定方法的名称,它将使用反射来调用该方法

因此,您的页面和对象可能如下所示:

<asp:objectdatasource
              id="ObjectDataSource2"
              runat="server"
              updatemethod="MyUpdateMethod"
              typename="MyBusinessObject">
<updateparameters>
<asp:controlparameter name="anID" controlid="DropDownList1" propertyname="SelectedValue" />
</updateparameters>
</asp:objectdatasource>

Public Class MyBusinessObject

    Public Shared Sub MyUpdateMethod(anID As String)
    'data access code
    End Sub 

End Class

公共类MyBusinessObject
公共共享子MyUpdateMethod(anID为字符串)
'数据访问代码
端接头
末级

这种将控件放在一起的模式可能非常有效,但过一段时间后您可能会感到太受限。

我遇到了同样的问题,我使用这种方法而不是声明更新参数的原因是因为有30个更新参数。我创建了一个业务对象类,该类具有基于用户输入填充的属性。更新工作正常,但我得到了与您相同的错误。