У меня есть GridView, который инициализирует страницу, используя все содержимое таблицы используется исходный DataSourceID="SqlDataSource1"
Обновление GridView SelectCommand
testPage.aspx:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$
ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [Field1], [Field2], [Field3], [Field4] FROM [Analysis]
ORDER BY [Field1] DESC">
</asp:SqlDataSource>
(я изменил имена реальные полевые !).
Это прекрасно работает, и gridView заполняет полные данные таблицы. На основе другого события теперь я хочу изменить SelectCommand для фильтрации таблицы с помощью предложения SQL WHERE
. Я попытался
testPage.aspx.cs:
protected void ctl04_ValueChanged(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = "SELECT [Field1], [Field2],
[Field3], [Field4] FROM [Analysis] WHERE [Field1] = 'items' ORDER BY
[Field1] DESC";
gridView1.DataBind();
}
пожаров событий и, как представляется, работать нормально, но gridView1 не обновляется/обновление и все еще содержит данные для полной таблицы.
Может кто-нибудь дать некоторые указатели, как заставить это работать? Спасибо
Попробуйте 'GridView.DataSource = null;' перед тем, как переназначить команду select. Это должно заставить «GridView» перегруппироваться с помощью нового 'SelectCommand'. –
Это не работает для меня, он работает нормально, но gridView1 по-прежнему содержит полные данные таблицы после того, как событие срабатывает. – user3357963