Динамическая сетка - как ссылаться в графе строк - PullRequest
2 голосов
/ 27 ноября 2011

Я динамически создаю несколько видов сетки в зависимости от данных в БД. Я генерирую gridview следующим образом в выражении foreach:

GridView gdv = new GridView();
gdv.ID = "gdv" + i.ToString();
gdv.SelectedIndexChanged += new EventHandler(gdv_SelectedIndexChanged);
gdv.RowDataBound += gdv_RowDataBound; 

RowDataBound выглядит следующим образом:

protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
   {             
      e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(((GridView)sender), "Select$" + e.Row.RowIndex);
   }
}

Это все работает должным образом, однако отправитель ((GridView)) возвращает следующее значение:

'gdv00'

Для этой ссылки мне нужно вернуть следующее:

'ctl00$ctl00$MainContent$Main$gdv0'

Вы уверены, что это как-то связано с мастер-страницами? но не знаете, как правильно ссылаться на это в событии, связанном с строкой?

1 Ответ

0 голосов
/ 27 ноября 2011

Идентификатор ctl00 $ ctl00 $ MainContent $ Main $ gdv является свойством UniqueID элемента управления сеткой (идентификатор клиента отделен _).Это идентификатор, отображаемый в браузере.Я думаю, что проблема здесь в том, что элемент управления не добавляется в дерево элементов управления сразу, что было проблемой для некоторых в прошлом.Попробуйте сделать это так:

GridView gdv = new GridView();
gdv.ID = "gdv" + i.ToString();
panel.Controls.Add(gdv);

//set grid props

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...