ListView FindControl error - PullRequest
       7

ListView FindControl error

0 голосов
/ 08 сентября 2011

У меня следующая ошибка:

System.NullReferenceException - Ссылка на объект не установлена ​​на экземпляр объекта.

К следующему коду:

<asp:ListView ID="LV1"  runat="server" DataSourceID="LinqDataSource">
  <ItemTemplate>
     <asp:Image ID="Image1" Width="100px" Height="100px" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' />
     //....and so on till the 
</asp:ListView>

Код - сзади:

protected void checkTheImage()
{
    ((Image)LV1.FindControl("Image1")).ImageUrl = "(noImage.jpg)" ;
}

и код на странице_загрузки:

protected void Page_Load(object sender, EventArgs e)
{
    checkTheImage();
}

Почему я получил ошибку? что не так в моем коде?

1 Ответ

2 голосов
/ 08 сентября 2011

Вы должны указать пункт:

protected void checkTheImage()
{
    ((Image)LV1.Items[0].FindControl("Image1")).ImageUrl = "(noImage.jpg)" ;
}

, поскольку ListView отображает элемент управления Image1 для каждого дочернего элемента. Чтобы изменить все изображения:

protected void checkTheImage()
{
   foreach(ListViewItem item in LV1.Items)
      ((Image)item.FindControl("Image1")).ImageUrl = "(noImage.jpg)" ;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...