Treeview가있는 Masterpage가 있습니다. 거기에 몇몇 노드를 선택할 수 있습니다. Default.aspx의 자리 표시 자에 일부 항목을 가져와 선택하면 Panel에 이미지와 링크 버튼이 배치됩니다. 이처럼 :런타임에 이미지 및 링크 버튼이있는 패널 작성
alt text http://a.imageshack.us/img20/9206/foldersrb.jpg
이 코드는 Masterpage이있는 Default.aspx를에 있습니다.
는 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"를 클릭하면 말할 수, 난 런타임에 컨트롤러를 만들 때 문제가있는 것 같습니다. "펑크 팬더"를 클릭하면 오류가 발생합니다. ID와 제어 'ctl00 $ CPH_Main $ ctl05' 를 찾을 수 없었기 때문에
오류가 발생하거나 다른 제어 게시 후 동일한 ID 할당된다. ID가 이 아닌 경우이 오류를 방지하려면 포스트 백 이벤트를 발생시키는 컨트롤의 ID 속성을 명시 적으로 설정하십시오.
또한 런타임에 linkbutton에 대한 이벤트 처리기를 만들면 어떻게 모든 링크 버튼이 사용하는 하나의 이벤트 처리기를 만들 수 있습니까? 폴더와 링크 버튼을 클릭 할 수 있고 같은 위치에 링크하기를 원한다면 전체 패널을 클릭 할 수있게 만드는 것이 더 간단합니까? 그렇다면 어떻게하면 "OnClick"이벤트를 얻을 수 있습니까?