C# 在代码隐藏中绑定对象数据源的数据并删除SelectMethod

C# 在代码隐藏中绑定对象数据源的数据并删除SelectMethod,c#,asp.net,webforms,code-behind,objectdatasource,C#,Asp.net,Webforms,Code Behind,Objectdatasource,我需要防止objectdatasource在代码隐藏中加载数据和管理数据。 当我删除SelectMethod时,会出现以下问题 ObjectDataSource“DataSource”不支持选择操作,除非指定了SelectMethod 这是我的objectDataSource <asp:ObjectDataSource ID="DataSource" runat="server" TypeName="declaration_prod_liste" EnablePaging

我需要防止objectdatasource在代码隐藏中加载数据和管理数据。 当我删除SelectMethod时,会出现以下问题

ObjectDataSource“DataSource”不支持选择操作,除非指定了SelectMethod

这是我的objectDataSource

<asp:ObjectDataSource ID="DataSource"  runat="server" TypeName="declaration_prod_liste"  
      EnablePaging="true" StartRowIndexParameterName="startrows"
      MaximumRowsParameterName="pagesize"
      SelectCountMethod="GetDataSourceCount">
</asp:ObjectDataSource>

您可以在代码隐藏中的适当事件中设置/更改objectdatasource的
SelectMethod
。例如,在下面的代码中,这是在Page_Load事件中完成的。 但是,您需要在html代码中指定它的SelectMethod,然后在
Selecting event
中取消它,如第二个代码片段所示

我假设您的objectdata源id是
DataSource1

另外,确保在hmtl中为objectdatasource指定SelectMethod

protected void Page_Load(object sender, EventArgs e)
{
   DataSource1.SelectMethod = "SelectMethod";
   GridView1.DataSourceID = DataSource1.ID ;
   GridView1.DataBind();
}
您可以通过在
选择事件中取消来取消objectdatasource自动耦合,如下面的代码片段所示。确保在objectdatasource html中订阅此事件

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
    //puty your logic when to cancel and when not to cancel
    e.Cancel = true;
}
Html应该如下所示

<asp:ObjectDataSource ID="DataSource1"  runat="server" TypeName="declaration_prod_liste"  
      EnablePaging="true" StartRowIndexParameterName="startrows"
      MaximumRowsParameterName="pagesize"
      SelectCountMethod="GetDataSourceCount"
      SelectMethod="SomeMethod"
      OnSelecting ="ObjectDataSource1_Selecting" >
</asp:ObjectDataSource>


您不能使用ObjectDataSource,它实际上只是一个方便的对象。或者,您可以向其添加一个control/session/etc参数,并确保该参数使其不返回任何数据;到目前为止仍然被封锁,那么你这边到底有什么问题?