0

DropDownListをバインドしています。最初の列にFirstNameがあり、2番目の列にDDLとしてLastNameがあります。

protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{ 
    DataTable myTable = new DataTable();
    DataColumn productIDColumn = new DataColumn("FirstName");
    DataColumn productNameColumn = new DataColumn("LastName");

    myTable.Columns.Add(productNameColumn);
    DataSet ds = new DataSet();

    ds = get();
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var categoryID = (e.Row.Cells[0].Text);
        var expression = "FirstName "+categoryID;

        DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");

        DataRow[] rows = ds.Tables[0].Select(expression);
        foreach (DataRow row in rows)
        {
            DataRow newRow = myTable.NewRow();
            newRow["UserId"] = row["UserId"];
            newRow["LastName"] = row["LastName"];
            myTable.Rows.Add(newRow);
        }

        ddl.DataSource = myTable;
        ddl.DataTextField = "LastName";
        ddl.DataValueField = "UserId";
        ddl.DataBind();
    }
}

Filter expression 'FirstName ' does not evaluate to a Boolean termDataRow [] rows = ds.Tables [0] .Select(expression);のようなエラーが発生します。

誰かがこれで私を助けることができますか?

4

2 に答える 2

1

あなたの表現は意味がありません。私は次のようなものを期待しています:

var expression = "FirstName = 'John'";

また

var expression = "CategoryId = 42";

Select メソッドのドキュメントを確認してください: http://msdn.microsoft.com/en-us/library/det4aw50.aspx

于 2012-10-24T12:28:47.063 に答える
0

式で 2 つの値を比較する必要があります。この記事を読む: C# DataTable Select

于 2012-10-24T12:30:06.007 に答える