2011-10-24 20 views
1

我的项目有问题。我正在动态创建链接按钮以显示项目。当我点击一个项目时,它会触发,我可以动态地显示bug的链接按钮。现在,当我点击一个错误时,我也想动态地显示描述,但是这个点击事件并没有触发,我无法修复它。这是我的代码。Linkbutton动态点击

private void LoadXmlBugs(XDocument xDocument) 
    { 
     //Load all bugs 
     IEnumerable<Bugs> data = from query in xDocument.Descendants("bugs") 
           where (((string)query.Element("bug_status") == "NEW") || 
           ((string)query.Element("bug_status") == "REOPENED") || 
           ((string)query.Element("bug_status") == "New")) 
           select new Bugs 
           { 
            Bug_Id = (string)query.Element("bug_id"), 
            Short_Desc = (string)query.Element("short_desc"), 
            Bug_Status = (string)query.Element("bug_status"), 
            Priority = (string)query.Element("priority"), 
            Creation_Ts = (string)query.Element("creation_ts"), 
           }; 

     Bugs = new List<Bugs>(data); 
     string statut = Request.QueryString.Get("bug_status"); 

     foreach (Bugs b in Bugs) 
     { 

      System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image(); 
      img.ImageUrl = ("~/Img/FolderIco.png"); 
      PanelAllBugs.Controls.Add(img); 
      LinkButton lkButtonBugs = new LinkButton(); 
      lkButtonBugs.Click += new EventHandler(lkButtonBugs_Click); 
      lkButtonBugs.ID = b.Bug_Id; 
      lkButtonBugs.Tag = b.Short_Desc; 
      lkButtonBugs.Text = b.Bug_Status + "  " + b.Short_Desc + "  " + "<br>"; 
      lkButtonBugs.Attributes.Add("runat", "server"); 
      PanelAllBugs.Controls.Add(lkButtonBugs); 

     } 
    } 


void lkButtonBugs_Click(object sender, EventArgs e) 
    { 
     bugId = ((sender as LinkButton).ID); 

     LoadTheDescriptionForABug(bugId, ((sender as LinkButton).ID)); 
     LoadBugsComments(); 
     LoadBugsAttachments(); 
    } 

有人可以帮助我吗?

非常感谢。

回答

2

从哪里调用方法:LoadXmlBugs

动态添加的控件应该在每个回传中添加,因此一切都取决于您在何处/何时调用上述方法。

尝试从Page_Init事件处理程序调用LoadXmlBugs

+0

在我的PageLoad中,我只加载项目。每个项目都是一个带有点击事件的链接按钮。所以当我点击一个项目时,我会显示这个项目的所有错误。而且我还通过点击事件创建了新的bug链接按钮。我不知道为什么论文不会发射。 我试图把LoadXmlBugs放入Page_Init中,但没有任何反应。 而我在项目linkbutton的点击上调用LoadXmlBugs。 然后,当我点击这些错误之一,我应该显示说明...点击不会触发。 – Kiwimoisi

+0

您必须在Page_Load之前添加控件。 @Davide给你正确的位置来做到这一点。 – TheGeekYouNeed

+0

当我把它放在page_Init中时,它仍然不起作用。 当我点击我的第一个项目linkbutton页面Init正在触发。 当我点击项目上的一个bug时,这也是一个Linkbutton,page_Init不会触发。 – Kiwimoisi