установить кнопку image в подробном виде, видимую после контроля в другом поле - PullRequest
0 голосов
/ 29 мая 2011

У меня есть этот подробный вид, в котором у меня есть поле и кнопка с изображением.Если значение поля пустое, я бы хотел, чтобы кнопка изображения была невидимой, а если она не пуста, я хотел бы увидеть кнопку изображения.

Вот мой код:

//for (int i = 0; i < DetailsView1.Fields.Count; i++)
//{
      Label lbl1 = (Label)DetailsView1.FindControl("Label1");
      ImageButton img = (ImageButton)DetailsView1.FindControl("ImageButton1");

      if (lbl1 != null)
      {
          LabelABC.Text = lbl1.Text.ToString();
          img.Visible = true;
      }
      else
      {
          img.Visible = false;                    
      }

//}

Я не уверен, нужен ли здесь цикл for.Я также пытался работать с .Rows[5].Cells[1].Find..., но тогда я получаю ошибку вне диапазона.

С кодом, который я разместил выше, я получаю сообщение:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

в строке: img.Visible = false;

Любые советы о том, как решить эту проблему, пожалуйста?Спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 29 мая 2011
protected void DetailsView1_DataBound(object sender, EventArgs e)
        {
            DetailsView dv = sender as DetailsView;
            foreach (DetailsViewRow dvr in dv.Rows) {
                ImageButton img = (ImageButton)dvr.FindControl("ImageButton1");
                img.ID = img.ID + dvr.RowIndex;
            }
        }

Попробуйте что-то вроде этого ... он не найдет элемент управления другим способом, и затем вы можете найти его по его обычному имени + индекс строки. Это если у вас есть ImageButton для каждой из ваших строк. Тогда вы должны попытаться найти его с подобным foreach.

0 голосов
/ 29 мая 2011

Вы должны пройти этот код в отладке, чтобы убедиться, что сам элемент управления не является нулевым в то время, когда вы пытаетесь получить к нему доступ. Обычно вы хотите делать такие вещи в событиях DataBound для основного элемента управления.

...