У меня есть UserControl AutomatedFeedGridView.ascx
, который по сути является GridView. Он имеет публичное свойство Category
, которое передается на страницу с помощью элемента управления.
Проблема в том, что я хочу фильтровать по выпадающему списку на странице вызова.
Ниже приведен код для AutomatedFeedGridView
элемента управления:
// The feed category
public Feeds.FeedCategory Category { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<AutomatedFeed> x = Feeds.GetAutomatedFeed(Category);
gvAutomatedFeed.DataSource = x;
gvAutomatedFeed.DataBind();
}
else
{
List<AutomatedFeed> x = (List<AutomatedFeed>)gvAutomatedFeedCategory.DataSource;
foreach (AutomatedFeed y in x)
{
// if condition is not met, hide y
}
}
Таким образом, при первой загрузке GridView привязывается к списку объектов AutomatedFeed
. При любых последующих вызовах (вызванных обратной передачей на странице, содержащей элемент управления) я хочу запустить некоторый код, чтобы отфильтровать некоторые элементы в GridView. Проблема в этой строке:
List<AutomatedFeed> x = (List<AutomatedFeed>)gvAutomatedFeedCategory.DataSource;
Я перепробовал все решения здесь , но ни одно из них, похоже, не работает, я всегда получаю Ссылку на объект, не установленную для ошибки экземпляра. Я что-то упускаю или делаю это совершенно неправильно?
Я знаю, что мог бы просто сделать еще один вызов Feeds.GetAutomatedFeed(Category)
, но должен быть лучший способ сделать это, чем сделать другой вызов хранимой процедуры?