I've got a GridView that I bind to a ObjectDataSource programmatically, like:
ObjectDataSource risks = new ObjectDataSource("Risks", "RetrieveProjectRisk");
risks.TypeName = "Promanto.ProjectRisks";
risks.DataObjectTypeName = "Promanto.ProjectRisk";
risks.SelectMethod = "RetrieveProjectRisk";
risks.DeleteMethod = "DeleteProjectRisk";
risks.InsertMethod = "AddProjectRisk";
risks.UpdateMethod = "UpdateProjectRisk";
risks.SelectParameters.Add("WhereClause", TypeCode.String, "ProjectID ='PR0002'");
RisksGrid.DataSource = risks;
RisksGrid.DataBind();
But when I click the edit button and I then update my values, I firstly get an error that RowUpdating should exist. When I add it, I'm not sure what to put in it. Isn't my UpdateMethod "UpdateProjectRisk" suppose to fire automatically?
When you use
ObjectDataSource
, providing theUpdateMethod
isn't enough.Your update method will need parameters as to which row to update. The gridview does not provide this on its own.
You need to implement the
RowUpdating
to provide theUpdateParameters
needed to updated yourObjectDataSource
Take a look at this ObjectDataSource Example