2011-05-27 94 views
0

我想創建一個自定義控件,並在下面顯示渲染方法。ASP.Net自定義控件渲染錯誤

我在bulletList.RenderControl(Writer)上得到一個「未設置爲對象實例的對象引用」錯誤;線。

任何想法?

protected override void Render(HtmlTextWriter Writer) 
    { 
     if (TermSetList != null && TermSetList.Count > 0) 
     { 
      BulletedList bulletList = new BulletedList(); 
      bulletList.Click += new BulletedListEventHandler(BulletListItem_Click); 
      bulletList.DisplayMode = BulletedListDisplayMode.LinkButton; 
      bulletList.CssClass = "tabs"; 

      foreach (KeyValuePair<String, String> item in TermSetList) 
      { 
       ListItem listItem = new ListItem(); 

       listItem.Text = item.Key; 
       listItem.Value = item.Value; 

       bulletList.Items.Add(listItem); 
      } 

      if (!this.Page.IsPostBack) 
      { 
       bulletList.Items[0].Selected = true; 
      } 

      bulletList.RenderControl(Writer); 

      base.Render(Writer); 
     } 
    } 
+1

你穿過它嗎? Writer對象在Render方法接收時是否正確實例化? – 2011-05-27 16:20:57

回答

1

您通常不希望在渲染過程中添加控件。你目前如何做這將確保你的點擊處理程序永遠不會被調用。

我的猜測是爲什麼你得到的錯誤是控件沒有被添加到控件集合中。

我的建議是將邏輯移動到更早的事件,可能是onload,那麼您不需要重寫Render方法。