过滤下拉列表

时间:2011-04-15 01:52:21

标签: c# asp.net drop-down-menu

如何过滤下拉列表?我试图制作一个代码,但它不起作用..请检查我的代码。 TNX

    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Source");

    string category;
    category = drpCategory.SelectedValue;
    DataRow[] foundRows;


    foundRows = table.Select(category);

    for (int i = 0; i < foundRows.Length; i++)
    {
        Console.WriteLine(foundRows[i][0]);
    }

2 个答案:

答案 0 :(得分:2)

您可以尝试使用DataTable.Select(string filterExpression)方法。

答案 1 :(得分:0)

就在几天前,我不得不做类似的事情。你有数据表的select方法,你可以使用简单的linq或lambda表达式。下面是非常小的示例代码。在您的方案中,您只需将类别值作为过滤器传递。希望这会有所帮助。

DataTable Dt = new DataTable();
Dt.Columns.Add("Name");
Dt.Columns.Add("Age");

Dt.Rows.Add(new object[] { "Babar", 44 });
Dt.Rows.Add(new object[] { "Babul", 55 });
Dt.Rows.Add(new object[] { "Bahar", 66 });
Dt.Rows.Add(new object[] { "Baird", 3 });
Dt.Rows.Add(new object[] { "Cable", 77 });

// Linq option
var q = from r in Dt.AsEnumerable()
    where r.Field<int>("Age") > 50
    select r;

DataRow[] LinkFoundRows = q.ToArray<DataRow>();

// Lambda expression option (one liner)
DataRow[] FoundRows2 = Dt.AsEnumerable().Where(row => row.Field<int>("Age") > 50).ToArray<DataRow>();

DataRow[] StdSelect = Dt.Select("Age > 50");

// all three requests will result you DataRows containing Babar, Bahar, Cable