在表上应用过滤器后,如何将数据绑定到下拉列表



我想将数据绑定到下拉列表。但是在绑定之前,我要应用于数据表上,以便我只从数据表中获取所选行。

我正在使用以下代码

DataTable table1 = (DataTable)Session["dtTable"];
       ddlSection.DataSource = table.Select("Section like 'Test'");
        ddlSection.DataTextField = "Quest";
        ddlSection.DataValueField = "ouestID";
        ddlSection.DataBind();

我遇到一个错误,说" system.data.datarow'不包含带有'quest'''的属性实际上,将过滤器应用于表列名称后。

如何为此编码?

as @rubber423提到的表1.选择将返回dataRow数组,它不会使用datacolumn。您可以使用DataView进行过滤和绑定到下拉列表AS

DataTable table1 = (DataTable)Session["dtTable"];
DataView dataView = table1.DefaultView;
dataView.RowFilter = "Section like 'Test'";
ddlSection.DataSource = dataView;
ddlSection.DataTextField = "Quest";
ddlSection.DataValueField = "ouestID";
ddlSection.DataBind();

希望它有帮助!

问题是,过滤方法返回数据线数组,因此没有数据列。我的幼稚解决方案将来自于此。

foreach (DataRow row in table.Select("Section like 'Test'")) {
    dataTable.ImportRow(row); //then set dataTable as DataSource
}

将数据级数组掩盖到数据表和数据座上。可能有更好的解决方案。

最新更新