Если у меня есть список с несколькими свойствами и свойствами, как я могу с LINQ получить все A в списке, который получил значение свойства A.abc = «ABC». Я хочу, чтобы это произошло, когда SelectedIndexChanged запускается из выпадающего списка. Я попытался следующие:Используя LINQ, получите все объекты из списка со значением конкретного столбца?
var datasource = from A in GetListOfAs() where A.attribute == "ABC" select A;
GridView1.DataSource = datasource;
GridView1.DataBind();
И в моей GridView У меня есть следующие BoundFields:
<asp:BoundField DataField="attribute" HeaderText="h1" />
<asp:BoundField DataField="df2" HeaderText="h2" />
Так что я хочу, чтобы показать, как:
h1 h2
------------------
ABC 123
ABC 456
EDIT:
Исходный источник данных - это весь GetListOfAs(). Я пытаюсь перечислить только те, которые имеют значение атрибута как «ABC», но он продолжает показывать тот же список, когда я выбираю ABC в выпадающем списке (я вижу, что SelectedIndexChanged происходит, поскольку страница перезагружается).
метод Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataSource = GetListOfAs();
GridView1.DataBind();
ddl.DataSource = GetListOfChoices();
ddl.DataTextField = "name";
ddl.DataValueField = "attribute";
ddl.DataBind();
if (ddl.Items.Count > 0)
{
ddl.Items.Insert(0, "Select one");
ddl.Items[0].Value = "";
ddl.SelectedIndex = 0;
}
}
По-видимому, проблема заключается не получает правильного SelectedValue.
У меня есть: String ddlValue = ddl.SelectedValue;
Не должно ли это работать? Я продолжаю получать пустой (""), который является начальным значением.
Пока неясно, о чем вы спрашиваете. У вас есть код, который уже фильтрует свойство, равное 'ABC'. –
Если бы вы могли, разместите свой код для привязки к DataGrid (это скорее всего событие 'Page_Load'). Пожалуйста, включите всю страницу 'Page_Load' – mclark1129
Вы уверены, что получаете правильное значение из DropDownList в событии SelectedIndexChanged? Вы повторно заполняете DropDownList без проверки IsPostBack? – roryWoods