我想使用匿名类型作为 GridView 的源。但它会首先使用下拉列表进行过滤。让我解释一下:我有一个我定义如下的类型:
IEnumerable<object> data = new[]{
new{Name="McClure Wallace", Id=1, Sal=10000d, Age=29},
new{Name="John Jones", Id=2, Sal=12000d, Age=27},
new{Name="Gloria Flowhart", Id=3,Sal=14000d, Age=21}
. . .
};
我使用它作为下拉列表的来源:
ddlEmployee.DataSource=data;
ddlEmployee.DataTextField = "Name";
ddlEmployee.DataValueField = "Id";
ddlEmployee.DataBind();
当用户从列表中选择一个项目时,我想获取相应的对象并将其绑定到 Gridview 中:
var sel = ddlEmployee.SelectedItem.ToString();
var selData = from d in data where **d.Id= sel** select d;
gvSearchResults.DataSource = selData;
gvSearchResults.DataBind();
但问题是,由于我将 d 作为对象,它会在 d.Id 上引发错误。
我怎样才能解决这个问题。请注意,我可能无法更改“数据”的定义,因为这是在应用程序外部控制的。我在这里只是为了清楚起见。