使用对象数据源填充下拉列表

Populate a dropdownlist with objectdatasource

我正在尝试以编程方式使用对象数据源填充下拉列表。这是一个用户控件,所以在我的 ascx 中我有这个:

    <asp:ObjectDataSource ID="odsFicheros" runat="server" 
                        OldValuesParameterFormatString="original_{0}" 
                        onselecting="odsFicheros_Selecting" SelectMethod="ejecutaconsultaFicheros" TypeName="DatosGW.ControlBuscador">

    </asp:ObjectDataSource>

     <asp:DropDownList ID="cmbFicheros" runat="server" CssClass="form-control" 
                         DataTextField="fichero" DataValueField="fichero" DataSourceID="odsFicheros" 
                        ondatabound="cmbFicheros_DataBound" AutoPostBack="True" 
                        onselectedindexchanged="cmbFicheros_SelectedIndexChanged">
      </asp:DropDownList>

在我这样做的背后代码中:

  protected void Page_Load(object sender, EventArgs e)
   {



    odsFicheros.TypeName = "DatosGW.ControlBuscador";
    odsFicheros.SelectMethod = "ejecutaconsultaFicheros";
    Parameter consultas = new Parameter(consulta, TypeCode.String);
    odsFicheros.SelectParameters.Add(consultas);
    odsFicheros.DataBind();

    cmbFicheros.DataSource = odsFicheros;

    this.ejecutarConsulta();
}

最后在我的 ControlBuscador class 上,我有 returns 数据表的方法,但它不起作用,为什么?如果您需要更多详细信息,请告诉我。

在 Visual Studio 中,我在选择 属性:

中使用向导完成了此操作
 e.InputParameters["consulta"] = hfConsulta.Value; 

我用我想要的参数创建了一个隐藏字段,现在可以使用了