У меня есть Masterpage, у которой есть Treeview. Вы можете выбрать там некоторые узлы. Основываясь на выборе, вы получаете некоторые элементы в Placeholder Default.aspx, вы получаете изображение и ссылку, расположенную в панели. Как это:Создание панели с изображениями и кнопкой ссылки во время выполнения
alt text http://a.imageshack.us/img20/9206/foldersrb.jpg
Этот код находится в Default.aspx, который имеет Masterpage.
TreeView nav_tree = ((TreeView)Master.FindControl("treeview_Navigation"));
string selectedNode = nav_tree.SelectedNode.Value;
var query = from n in dc.Nemanet_Navigations
where n.UserId == userGuid && n.Nav_pID.ToString() == selectedNode && n.Nav_IsFile == false
orderby n.Nav_Name
select n;
foreach (var item in query)
{
Panel div = new Panel();
div.ID = item.Nav_ID.ToString();
div.CssClass = "BulletDiv";
content_default.Controls.Add(div);
Image picture = new Image();
picture.ImageUrl = "~/Icons/New_Folder.png";
div.Controls.Add(picture);
div.Controls.Add(new LiteralControl("<br/>"));
LinkButton description = new LinkButton();
description.Text = item.Nav_Name;
description.PostBackUrl = "default.aspx";
div.Controls.Add(description);
}
Там, кажется, проблема, когда я создаю контроллеры во время выполнения, когда сайт делает постбэк, позволяет сказать, что если я нажимаю «Enska» в TreeView я получить результаты в изображении выше. Позволяет сказать, что я затем нажмите «Панк-пантера», я получаю сообщение об ошибке.
произошла ошибка, потому что управления с идентификатором «ctl00 $ CPH_Main $ ctl05» не могли быть расположены или другой управления назначается одному и тому же ID после обратной передачи. Если идентификатор не присвоен , явным образом задайте свойство элементов управления, которое возвращает события обратной передачи, чтобы избежать этой ошибки.
Кроме того, как бы я мог сделать обработчик события для ссылки в runtime, могу ли я сделать один обработчик событий, который использует каждый элемент ссылки или что? Я хочу, чтобы папка и linkbutton были доступны для просмотра и ссылки на одно и то же место, проще ли сделать панель нажатой, если да, как бы я получил событие OnClick?