C# 如何向select函数发送数据源参数

C# 如何向select函数发送数据源参数,c#,asp.net,C#,Asp.net,编辑 这是我的新尝试: 现在我正在获取ObjectDataSource'MenuDataSource'无法找到没有参数的非泛型方法'GetData'。 <asp:ObjectDataSource ID="GridDataSource" SelectMethod="GetData" TypeName="Model.GridProvider" runat="server" > <Sele

编辑

这是我的新尝试:

现在我正在获取
ObjectDataSource'MenuDataSource'无法找到没有参数的非泛型方法'GetData'。

     <asp:ObjectDataSource 
     ID="GridDataSource"            
      SelectMethod="GetData"
      TypeName="Model.GridProvider"
      runat="server"  > 
     <SelectParameters>
        <asp:Parameter Name="MenuItemID" Type="Int32" DefaultValue="10"  />
      </SelectParameters>
      </asp:ObjectDataSource>


public int DbToAccess
    {
        get
        {
            return SiteMaster.Current_MenuItemID;
        }
    }


[DataObject(true)]
public static class MyMenuProvider
{
        [DataObjectMethod(DataObjectMethodType.Select)]
        public static HierarchicalCollection GetData(int inputMenuItemID)
        {
            return GetCollection(inputMenuItemID);
        }

公共int数据库访问
{
得到
{
返回SiteMaster.Current\u MenuItemID;
}
}
[数据对象(真)]
公共静态类MyMenuProvider
{
[DataObjectMethod(DataObjectMethodType.Select)]
公共静态层次结构集合GetData(int inputMenuItemID)
{
返回GetCollection(inputMenuItemID);
}
}


如何实现这一点?

您可以使用一个公共参数,它的get调用转到数据源并返回其set参数。或者更好的方法是使用公共参数将其值存储在会话变量中,并且Select函数和数据源都可以访问该参数。 大概是这样的:

    public string MyParam
    {
           get
           {
                 return Session["MyParamStr"].ToString();
           } 
           set 
           {
                Session["MyParamStr"] = value;
           }
    }
然后在你的标记中

    <asp:Parameter value='<%# MyParam %>' />

答案是我很愚蠢
TypeName=“Model.GridProvider”
我放置select方法的类是
mymenupvider

改为

public static class GridProvider
{
    [DataObjectMethod(DataObjectMethodType.Select)]
    public static DataTable GetData(int MenuItemId)
    {
        return GuiCreators.getDataTable("");

    }


    public static void GetCommand(int id)
    {

    }


}

我所有的麻烦都解决了

我试过这个。但是在调用source.Select()时;它给我一个例外,它找不到没有参数的泛型选择函数。我是odn;看不到源参数列表中的参数。嗯,您需要使用ObjectDataSource吗?您是否可以编写自己的DataAccess类来访问数据库,检索结果并自己进行数据绑定。这并不能解决您的问题,但我只使用那些asp:数据源,当它们非常简单时。一旦您需要访问参数,我发现最好在代码中进行数据访问,我想明天behindeh可能会这样做。我是asp.net新手,不知道怎么做。