如何发送数据源参数来选择函数

本文关键字:选择 函数 参数 何发送 数据源 | 更新日期: 2023-09-27 17:49:19

编辑

这是我的新尝试:

现在我得到ObjectDataSource 'MenuDataSource' could not find a non-generic method 'GetData' that has no parameters.

     <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);
        }

}

我该怎么做?

如何发送数据源参数来选择函数

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

    public string MyParam
    {
           get
           {
                 return Session["MyParamStr"].ToString();
           } 
           set 
           {
                Session["MyParamStr"] = value;
           }
    }

然后在您的Markup 中

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

答案是我很愚蠢TypeName="Model.GridProvider"我使用select方法的类是MyMenuProvider

更改为

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

    public static void GetCommand(int id)
    {
    }

}

我的所有问题都解决了